NumericPrimitiveType

zio.blocks.schema.NumericPrimitiveType
sealed trait NumericPrimitiveType[A] extends PrimitiveType[A]

Sub-trait of PrimitiveType for numeric types that support arithmetic operations. Provides access to the Scala Numeric type class for the underlying type.

This trait is sealed within the PrimitiveType hierarchy - all implementations are the numeric case classes (Byte, Short, Int, Long, Float, Double, BigInt, BigDecimal).

Attributes

Source
PrimitiveType.scala
Graph
Supertypes
trait PrimitiveType[A]
class Object
trait Matchable
class Any
Known subtypes
class BigDecimal
class BigInt
class Byte
class Double
class Float
class Int
class Long
class Short
Show all

Members list

Value members

Abstract methods

def numeric: Numeric[A]

Returns the Numeric instance of A.

Returns the Numeric instance of A.

Attributes

Source
PrimitiveType.scala

Returns the tag of this numeric type in DynamicSchemaExpr.

Returns the tag of this numeric type in DynamicSchemaExpr.

Attributes

Source
PrimitiveType.scala

Concrete methods

def schema: Schema[A]

Returns a schema whose node is a primitive node of this type, with its validation.

Returns a schema whose node is a primitive node of this type, with its validation.

Attributes

Source
PrimitiveType.scala

Inherited methods

Returns the binding of a primitive node of this type.

Returns the binding of a primitive node of this type.

Attributes

Inherited from:
PrimitiveType
Source
PrimitiveType.scala
def fromDynamicValue(value: DynamicValue): Either[SchemaError, A]

Converts value into an A, or returns an ExpectationMismatch error such as Expected Int. value must be a DynamicValue.Primitive. The numeric types and Char also accept a primitive value of one of the other numeric types or Char when converting it to this type and back gives the same value; every other type accepts only its own PrimitiveValue case. Because the JVM conversions saturate or wrap, a few lossy conversions pass that check: a Float or Double of 2^63 decodes as Long.MaxValue, a Float of 2^31 as Int.MaxValue, Int.MaxValue as the Float 2^31, Long.MaxValue as the Float or Double 2^63, a Char of 32768 or more as a negative Short (65408 or more as a negative Byte), and a negative Byte or Short as a Char of 65408 or 32768 or more (-1 as Char.MaxValue). The validation is not checked.

Converts value into an A, or returns an ExpectationMismatch error such as Expected Int. value must be a DynamicValue.Primitive. The numeric types and Char also accept a primitive value of one of the other numeric types or Char when converting it to this type and back gives the same value; every other type accepts only its own PrimitiveValue case. Because the JVM conversions saturate or wrap, a few lossy conversions pass that check: a Float or Double of 2^63 decodes as Long.MaxValue, a Float of 2^31 as Int.MaxValue, Int.MaxValue as the Float 2^31, Long.MaxValue as the Float or Double 2^63, a Char of 32768 or more as a negative Short (65408 or more as a negative Byte), and a negative Byte or Short as a Char of 65408 or 32768 or more (-1 as Char.MaxValue). The validation is not checked.

val year = PrimitiveType.Int(Validation.None)

val fromLong = year.fromDynamicValue(
 DynamicValue.Primitive(PrimitiveValue.Long(2021L))
) // Right(2021)
val fromDouble = year.fromDynamicValue(
 DynamicValue.Primitive(PrimitiveValue.Double(2021.5))
) // Left(zio.blocks.schema.SchemaError: Expected Int at: .)

Attributes

Inherited from:
PrimitiveType
Source
PrimitiveType.scala

Inherited and Abstract methods

def toDynamicValue(value: A): DynamicValue

Wraps value in a DynamicValue.Primitive of the matching PrimitiveValue case.

Wraps value in a DynamicValue.Primitive of the matching PrimitiveValue case.

Attributes

Inherited from:
PrimitiveType
Source
PrimitiveType.scala
def typeId: TypeId[A]

Returns the type ID of A.

Returns the type ID of A.

Attributes

Inherited from:
PrimitiveType
Source
PrimitiveType.scala

Returns the validation of the values of this type, Validation.None when there is none.

Returns the validation of the values of this type, Validation.None when there is none.

Attributes

Inherited from:
PrimitiveType
Source
PrimitiveType.scala