Packages

sealed trait SType extends SigmaNode

Every type descriptor is a tree represented by nodes in SType hierarchy. In order to extend type family: - Implement concrete class derived from SType - Implement serializer (see SCollectionSerializer) and register it in STypeSerializer.table Each SType is serialized to array of bytes by: - emitting typeCode of each node (see special case for collections below) - then recursively serializing subtrees from left to right on each level - for each collection of primitive type there is special type code to emit single byte instead of two bytes Types code intervals - (1 .. MaxPrimTypeCode) // primitive types - (CollectionTypeCode .. CollectionTypeCode + MaxPrimTypeCode) // collections of primitive types - (MaxCollectionTypeCode ..) // Other types Collection of non-primitive type is serialized as (CollectionTypeCode, serialize(elementType))

Linear Supertypes
SigmaNode, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SType
  2. SigmaNode
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type WrappedType

Abstract Value Members

  1. abstract def canEqual(that: Any): Boolean
    Definition Classes
    Equals
  2. abstract def dataSize(v: WrappedType): Long

    Approximate size of the given value in bytes.

    Approximate size of the given value in bytes. It is actual size only for primitive types.

  3. abstract def isConstantSize: Boolean

    Returns true if dataSize doesn't depend on data value.

    Returns true if dataSize doesn't depend on data value. This is useful for optimizations of calculating sizes of collections.

  4. abstract def productArity: Int
    Definition Classes
    Product
  5. abstract def productElement(n: Int): Any
    Definition Classes
    Product
  6. abstract val typeCode: TypeCode

    Type code used in serialization of SType values.

    Type code used in serialization of SType values.

    See also

    TypeSerializer

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def ?:(whenNoType: ⇒ SType): SType

    Elvis operator for types.

    Elvis operator for types. See https://en.wikipedia.org/wiki/Elvis_operator

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def isEmbeddable: Boolean

    Returns true if this type embeddable, i.e.

    Returns true if this type embeddable, i.e. a type that can be combined with type constructor for optimized encoding. For each embeddable type T, and type constructor C, the type C[T] can be represented by a single byte.

    See also

    sigmastate.serialization.TypeSerializer

  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. def productIterator: Iterator[Any]
    Definition Classes
    Product
  18. def productPrefix: String
    Definition Classes
    Product
  19. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. def toTermString: String

    Returns parsable type term string of the type described by this type descriptor.

    Returns parsable type term string of the type described by this type descriptor. For every type it should be inverse to SigmaTyper.parseType. This is default fallback implementation, should be overriden if it is not correct for a particular type.

  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  25. def withSubstTypes(subst: Map[STypeVar, SType]): SType

Inherited from SigmaNode

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped