package cbor
- Source
- package.scala
- Alphabetic
- By Inheritance
- cbor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package high
High-level representation and tools for CBOR data streams.
High-level representation and tools for CBOR data streams.
The high-level representation is less powerful as the low-level one, as it builds structured data. For instance it is not able to represent arrays of strings whose size is bigger than
Int.MaxValue
.The reprensentation is intended to be easier to work with if you need more structured data and don't exceed the underlying limits.
- package low
Low-level representation and tools for CBOR data streams.
Low-level representation and tools for CBOR data streams.
The low-level representation has two main goals:
- it is a flat representation of the input stream, which allows for
expressing collections that exceed the max size of
Int.MaxValue
- it doesn't interpret numbers, keeping their raw representation in memory.
This representation is useful when dealing with streams that may contain big collections or when it is not necessary to build an AST, as it is more efficient than the high-level one.
The data model follows closely the structure described in the RFC.
- it is a flat representation of the input stream, which allows for
expressing collections that exceed the max size of
Type Members
- sealed abstract class CborException extends Exception
- class CborParsingException extends CborException
- class CborTagDecodingException extends CborException
- class CborValidationException extends CborException
Value Members
- def debugDiagnostic[F[_]](logger: (String) => Unit = println(_))(implicit F: RaiseThrowable[F]): Pipe[F, CborItem, Nothing]
A debugging
Pipe
, useful to use in conjunction withobserve
.A debugging
Pipe
, useful to use in conjunction withobserve
.bytes.through(items).observe(debugDiagnostic()).compile.toList
- def diagnostic[F[_]](implicit F: RaiseThrowable[F]): Pipe[F, CborItem, String]
Useful for debugging, generates a stream of diagnostic strings representing the CBOR values in the input stream as defined in [section 8 of RFC8949](https://www.rfc-editor.org/rfc/rfc8949.html#name-diagnostic-notation).
- object Diagnostic
Useful for debugging, generates a stream of diagnostic strings representing the CBOR values in the input stream as defined in [section 8 of RFC8949](https://www.rfc-editor.org/rfc/rfc8949.html#name-diagnostic-notation).
- object HalfFloat
HalfFloat represents 16-bit floating-point values.
HalfFloat represents 16-bit floating-point values.
This type does not actually support arithmetic directly. The expected use case is to convert to Float to perform any actual arithmetic, then convert back to a HalfFloat if needed.
Binary representation:
sign (1 bit) | | exponent (5 bits) | | | | mantissa (10 bits) | | | x xxxxx xxxxxxxxxx
Value interpretation (in order of precedence, with _ wild):
0 00000 0000000000 (positive) zero 1 00000 0000000000 negative zero _ 00000 subnormal number _ 11111 0000000000 +/- infinity _ 11111 not-a-number _ _ normal number
For non-zero exponents, the mantissa has an implied leading 1 bit, so 10 bits of data provide 11 bits of precision for normal numbers.
- object Tags
Contains the definition of tags described in section 2.4 of the RFC