NumericPrimitiveType
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
- Known subtypes
Members list
Value members
Abstract methods
Returns the Numeric instance of A.
Returns the tag of this numeric type in DynamicSchemaExpr.
Concrete methods
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
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
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
Returns the type ID of A.
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