CanHold

parsley.token.numeric.CanHold
object CanHold extends LowPriorityImplicits

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

Source
BitBounds.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
CanHold.type

Members list

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.

Type parameters

T

the type that can accomodate 16 bits.

Attributes

Since

4.0.0

Source
BitBounds.scala
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.

Type parameters

T

the type that can accomodate 32 bits.

Attributes

Since

4.0.0

Source
BitBounds.scala
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.

Type parameters

T

the type that can accomodate 64 bits.

Attributes

Since

4.0.0

Source
BitBounds.scala
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.

Type parameters

T

the type that can accomodate 8 bits.

Attributes

Since

4.0.0

Source
BitBounds.scala

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

Source
BitBounds.scala

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

Source
BitBounds.scala

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

Source
BitBounds.scala

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

Source
BitBounds.scala
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

Source
BitBounds.scala
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

Source
BitBounds.scala

Evidence that Short can store 16 bits of data.

Evidence that Short can store 16 bits of data.

Attributes

Since

4.0.0

Source
BitBounds.scala

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
Source
BitBounds.scala