Adjunct

object Adjunct

These are basically our "type classes" with the ability to serialize and deserialize. They are supported through ProductHasAdjuncts which is recognized in serialization.

Companion:
class
class Object
trait Matchable
class Any
Adjunct.type

Type members

Classlikes

object BooleanSeqTop extends NumBool[Seq[Boolean]] with SeqLikeEq[Boolean] with SeqLikeToNum[Boolean] with FromAny[Seq[Boolean]]
object BooleanTop extends NumBool[Boolean] with ScalarEqImpl[Boolean] with ScalarToNumImpl[Boolean] with FromAny[Boolean] with HasDefault[Boolean]
trait Context[T <: Exec[T]]
object DoubleSeqTop extends SeqLikeNumFrac[Double] with SeqLikeToNum[Double] with SeqLikeNumDouble[Double] with WidenSelfToDouble[Seq[Double]] with FromAny[Seq[Double]]
sealed abstract class DoubleTop extends NumDouble[Double] with ScalarEqImpl[Double] with ScalarToNumImpl[Double] with FromAny[Double] with HasDefault[Double]
Companion:
object
object DoubleTop extends DoubleTop with WidenToDouble[Double, Double]
Companion:
class
object Eq extends EqLowPriority
Companion:
class
trait Eq[A] extends Adjunct
Companion:
object
trait Factory
object FromAny
Companion:
class
trait FromAny[A] extends Adjunct
Companion:
object
object HasDefault
Companion:
class
trait HasDefault[A] extends Adjunct

A type class saying some default value is provided for a type. This is often a convention, such as "zero" for numeric types, or "empty" for containers etc. It is used to avoid having to initialize objects with explicit default values, but care must be taken to take those conventional defaults into account.

A type class saying some default value is provided for a type. This is often a convention, such as "zero" for numeric types, or "empty" for containers etc. It is used to avoid having to initialize objects with explicit default values, but care must be taken to take those conventional defaults into account.

Note that the class in no covariant in A, as this causes selectivity problems with, for example, Span and SpanLike.

Companion:
object
object IntSeqTop extends NumInt[Seq[Int]] with SeqLikeNum[Int] with SeqLikeToNum[Int] with FromAny[Seq[Int]]
object IntTop extends NumInt[Int] with ScalarEqImpl[Int] with ScalarToNumImpl[Int] with FromAny[Int] with HasDefault[Int]
object LongSeqTop extends NumInt[Seq[Long]] with SeqLikeNum[Long] with SeqLikeToNum[Long] with FromAny[Seq[Long]]
object LongTop extends NumInt[Long] with ScalarEqImpl[Long] with ScalarToNumImpl[Long] with FromAny[Long] with HasDefault[Long]
trait Num[A] extends Ord[A]
trait NumBool[A] extends NumLogic[A]
trait NumDiv[A] extends Num[A]
trait NumDouble[A] extends NumFrac[A]
trait NumFrac[A] extends NumDiv[A]
trait NumInt[A] extends NumDiv[A] with NumLogic[A]
trait NumLogic[A] extends Eq[A]
trait Ord[A] extends Eq[A]
sealed trait Primitive extends Adjunct
trait Scalar[A]
object StringTop extends ScalarEqImpl[String] with FromAny[String] with HasDefault[String]
object ToNum extends ToNumLowPriority
Companion:
class
trait ToNum[A] extends Adjunct
Companion:
object
object Widen extends WidenMidPriority
Companion:
class
trait Widen[A1, A] extends Adjunct
Companion:
object
object Widen2
Companion:
class
trait Widen2[A1, A2, A] extends Widen[A1, A]
Companion:
object
trait WidenSelfToDouble[A] extends WidenToDouble[A, A]
Companion:
class
trait WidenToDouble[A1, A] extends Widen[A1, A] with NumDouble[A]
Companion:
object

Types

type ScalarEq[A] = Eq[A] & Scalar[A]
type ScalarNum[A] = Num[A] & Scalar[A]
type ScalarNumBool[A] = NumBool[A] & Scalar[A]
type ScalarNumDouble[A] = NumDouble[A] & Scalar[A]
type ScalarNumFrac[A] = NumFrac[A] & Scalar[A]
type ScalarNumInt[A] = NumInt[A] & Scalar[A]
type ScalarOrd[A] = Ord[A] & Scalar[A]
type ScalarToNum[A] = ToNum[A] & Scalar[A]

Value members

Concrete methods

def addFactory(f: Factory): Unit
@inline
def getFactory(id: Int): Factory
def read(in: DataInput): Adjunct
def readT[A <: Adjunct](in: DataInput): A
def write(out: DataOutput, adj: Adjunct): Unit