abstract class Data[A <: AnyRef.Opaque, REAL <: AnyRef](name: String)(using ct: scala.reflect.ClassTag[REAL]) extends AnyRef.Opaque.Base[A, REAL] with AnyRef.G.Companion.Containers[A] with _methods[A, REAL]
AnyRef Opaque Data Companion Object Base
Opaque Data allows to create Scalqa basic opaque type with attached customized containers.
For AnyRef types there is no performance advantage in having attached containers, just some available syntax choice, compare:
val sb1: Buffer[String] = NEW
// vs.
val sb2: String.Buffer = NEW
As an example look into BigInteger with source code available.
- Source
- __.scala
trait AnyRef.G.Companion.Containers[AnyRef.Opaque.Data.A]
class Any.Z.OpaqueBase[AnyRef.Opaque.Data.A]
trait Any.Def.Void[AnyRef.Opaque.Data.A]
trait Any.Def.Doc[AnyRef.Opaque.Data.A]
trait Any.Def.Tag[AnyRef.Opaque.Data.A]
class Any.Def.TypeName[AnyRef.Opaque.Data.A]
class java.lang.Object
trait scala.Matchable
class Any
object BigDecimal
object BigInteger