CanHold

parsley.token.numeric.CanHold$

This object contains the definitions of several types that help enforce that parsers of bounded precision only return types that can losslessly accomodate that precision.

Note that, on the JVM, there is no such thing as an unsigned value natively. Instead, the JVM provides a guarantee that overflow is well-defined, and, as such supports operations that work on numbers as if they were unsigned. For this reason, parsley makes no distinction between unsigned and signed numbers.

Attributes

Since:

4.0.0

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
CanHold.type

Members list

Concise view

Type members

Types

type can_hold_16_bits[T] = CanHold[_16.type, T]

This type-constraint requires that the given type has enough bit-width to store 16 bits of data.

This type-constraint requires that the given type has enough bit-width to store 16 bits of data.

Attributes

T

the type that can accomodate 16 bits.

Since:

4.0.0

type can_hold_32_bits[T] = CanHold[_32.type, T]

This type-constraint requires that the given type has enough bit-width to store 32 bits of data.

This type-constraint requires that the given type has enough bit-width to store 32 bits of data.

Attributes

T

the type that can accomodate 32 bits.

Since:

4.0.0

type can_hold_64_bits[T] = CanHold[_64.type, T]

This type-constraint requires that the given type has enough bit-width to store 64 bits of data.

This type-constraint requires that the given type has enough bit-width to store 64 bits of data.

Attributes

T

the type that can accomodate 64 bits.

Since:

4.0.0

type can_hold_8_bits[T] = CanHold[_8.type, T]

This type-constraint requires that the given type has enough bit-width to store 8 bits of data.

This type-constraint requires that the given type has enough bit-width to store 8 bits of data.

Attributes

T

the type that can accomodate 8 bits.

Since:

4.0.0

Implicits

Implicits

implicit val byte_8: can_hold_8_bits[Byte]

Evidence that Byte can store 8 bits of data.

Evidence that Byte can store 8 bits of data.

Attributes

Since:

4.0.0

Provides evidence that a type that can store 32 bits can also store 16 bits.

Provides evidence that a type that can store 32 bits can also store 16 bits.

Attributes

Since:

4.0.0

Provides evidence that a type that can store 64 bits can also store 32 bits.

Provides evidence that a type that can store 64 bits can also store 32 bits.

Attributes

Since:

4.0.0

Provides evidence that a type that can store 16 bits can also store 8 bits.

Provides evidence that a type that can store 16 bits can also store 8 bits.

Attributes

Since:

4.0.0

implicit val int_32: can_hold_32_bits[Int]

Evidence that Int can store 32 bits of data.

Evidence that Int can store 32 bits of data.

Attributes

Since:

4.0.0

implicit val long_64: can_hold_64_bits[Long]

Evidence that Long can store 64 bits of data.

Evidence that Long can store 64 bits of data.

Attributes

Since:

4.0.0

implicit val short_16: can_hold_16_bits[Short]

Evidence that Short can store 16 bits of data.

Evidence that Short can store 16 bits of data.

Attributes

Since:

4.0.0

Inherited implicits

implicit val big_64: can_hold_64_bits[BigInt]

Evidence that BigInt can store (at least) 64 bits of data.

Evidence that BigInt can store (at least) 64 bits of data.

Attributes

Since:

4.0.0

Note:

long_64 is prioritised for implicit selection over this.

Inherited from:
LowPriorityImplicits