AnyRef.Opaque.Data

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 _methods[AnyRef.Opaque.Data.A, REAL]
trait AnyRef.G.Companion.Containers[AnyRef.Opaque.Data.A]
class AnyRef.Opaque.Base[AnyRef.Opaque.Data.A, REAL]
trait _methods[AnyRef.Opaque.Data.A, REAL]
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
class AnyRef.Opaque.Data.Ordered[AnyRef.Opaque.Data.Ordered.A, REAL]

Def

val typeName: String

Type name

Type name

Returns defined opaque type name

Inherited from
OpaqueBase
Source
OpaqueBase.scala
def value_doc(v: A): Doc
Inherited from
Base
Source
Base.scala
def value_isVoid(v: A): Boolean
Inherited from
Base
Source
Base.scala
def value_tag(v: A): String
Inherited from
Base
Source
Base.scala

Containers