Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Encoding
- toBuilder ∷ Version → Encoding → Builder
- data Tokens
- = TkWord !Word Tokens
- | TkWord64 !Word64 Tokens
- | TkInt !Int Tokens
- | TkInt64 !Int64 Tokens
- | TkBytes !ByteString Tokens
- | TkBytesBegin Tokens
- | TkByteArray !SlicedByteArray Tokens
- | TkString !Text Tokens
- | TkUtf8ByteArray !SlicedByteArray Tokens
- | TkStringBegin Tokens
- | TkListLen !Word Tokens
- | TkListBegin Tokens
- | TkMapLen !Word Tokens
- | TkMapBegin Tokens
- | TkTag !Word Tokens
- | TkTag64 !Word64 Tokens
- | TkInteger !Integer Tokens
- | TkNull Tokens
- | TkUndef Tokens
- | TkBool !Bool Tokens
- | TkSimple !Word8 Tokens
- | TkFloat16 !Float Tokens
- | TkFloat32 !Float Tokens
- | TkFloat64 !Double Tokens
- | TkBreak Tokens
- | TkEncoded !ByteString Tokens
- | TkEnd
- toPlainEncoding ∷ Version → Encoding → Encoding
- fromPlainEncoding ∷ Encoding → Encoding
- fromPlainEncodingWithVersion ∷ (Version → Encoding) → Encoding
- withCurrentEncodingVersion ∷ (Version → Encoding) → Encoding
- enforceEncodingVersion ∷ Version → Encoding → Encoding
- ifEncodingVersionAtLeast ∷ Version → Encoding → Encoding → Encoding
- encodeVersion ∷ Version → Encoding
- encodeMaybe ∷ (a → Encoding) → Maybe a → Encoding
- encodeNullMaybe ∷ (a → Encoding) → Maybe a → Encoding
- encodeStrictMaybe ∷ (a → Encoding) → StrictMaybe a → Encoding
- encodeNullStrictMaybe ∷ (a → Encoding) → StrictMaybe a → Encoding
- encodePair ∷ (a → Encoding) → (b → Encoding) → (a, b) → Encoding
- encodeTuple ∷ (a → Encoding) → (b → Encoding) → (a, b) → Encoding
- encodeRatio ∷ (t → Encoding) → Ratio t → Encoding
- encodeRatioNoTag ∷ (t → Encoding) → Ratio t → Encoding
- encodeRatioWithTag ∷ (t → Encoding) → Ratio t → Encoding
- encodeEnum ∷ Enum a ⇒ a → Encoding
- encodeWithOrigin ∷ (a → Encoding) → WithOrigin a → Encoding
- encodeList ∷ (a → Encoding) → [a] → Encoding
- encodeSeq ∷ (a → Encoding) → Seq a → Encoding
- encodeStrictSeq ∷ (a → Encoding) → StrictSeq a → Encoding
- encodeSet ∷ (a → Encoding) → Set a → Encoding
- encodeMap ∷ (k → Encoding) → (v → Encoding) → Map k v → Encoding
- encodeVMap ∷ (Vector kv k, Vector vv v) ⇒ (k → Encoding) → (v → Encoding) → VMap kv vv k v → Encoding
- encodeVector ∷ Vector v a ⇒ (a → Encoding) → v a → Encoding
- variableListLenEncoding ∷ Int → Encoding → Encoding
- encodeFoldableEncoder ∷ Foldable f ⇒ (a → Encoding) → f a → Encoding
- encodeFoldableAsDefLenList ∷ Foldable f ⇒ (a → Encoding) → f a → Encoding
- encodeFoldableAsIndefLenList ∷ Foldable f ⇒ (a → Encoding) → f a → Encoding
- encodeFoldableMapEncoder ∷ Foldable f ⇒ (Word → a → Maybe Encoding) → f a → Encoding
- lengthThreshold ∷ Int
- encodeUTCTime ∷ UTCTime → Encoding
- encodeIPv4 ∷ IPv4 → Encoding
- ipv4ToBytes ∷ IPv4 → ByteString
- encodeIPv6 ∷ IPv6 → Encoding
- ipv6ToBytes ∷ IPv6 → ByteString
- encodeWord ∷ Word → Encoding
- encodeWord8 ∷ Word8 → Encoding
- encodeWord16 ∷ Word16 → Encoding
- encodeWord32 ∷ Word32 → Encoding
- encodeWord64 ∷ Word64 → Encoding
- encodeInt ∷ Int → Encoding
- encodeInt8 ∷ Int8 → Encoding
- encodeInt16 ∷ Int16 → Encoding
- encodeInt32 ∷ Int32 → Encoding
- encodeInt64 ∷ Int64 → Encoding
- encodeInteger ∷ Integer → Encoding
- encodeBytes ∷ ByteString → Encoding
- encodeBytesIndef ∷ Encoding
- encodeByteArray ∷ SlicedByteArray → Encoding
- encodeString ∷ Text → Encoding
- encodeStringIndef ∷ Encoding
- encodeUtf8ByteArray ∷ SlicedByteArray → Encoding
- encodeListLen ∷ Word → Encoding
- encodeListLenIndef ∷ Encoding
- encodeMapLen ∷ Word → Encoding
- encodeMapLenIndef ∷ Encoding
- encodeBreak ∷ Encoding
- encodeTag ∷ Word → Encoding
- encodeTag64 ∷ Word64 → Encoding
- encodeBool ∷ Bool → Encoding
- encodeUndef ∷ Encoding
- encodeNull ∷ Encoding
- encodeSimple ∷ Word8 → Encoding
- encodeFloat16 ∷ Float → Encoding
- encodeFloat ∷ Float → Encoding
- encodeDouble ∷ Double → Encoding
- encodePreEncoded ∷ ByteString → Encoding
- encodeTerm ∷ Term → Encoding
Decoders
A flattened representation of a term, which is independent of any underlying binary representation, but which we later serialise into CBOR format.
Since: cborg-0.2.0.0
withCurrentEncodingVersion ∷ (Version → Encoding) → Encoding Source #
Get access to the current version being used in the encoder
enforceEncodingVersion ∷ Version → Encoding → Encoding Source #
Ignore the current version of the encoder and enforce the supplied one instead.
ifEncodingVersionAtLeast Source #
∷ Version | |
→ Encoding | Use this encoder if current encoder version is larger or equal to the supplied
|
→ Encoding | Use this encoder if current encoder version is lower than the supplied |
→ Encoding |
Conditionoly choose the encoder newer or older deceder, depending on the current version. Supplied version acts as a pivot.
Example
Custom
encodeNullMaybe ∷ (a → Encoding) → Maybe a → Encoding Source #
Alternative way to encode a Maybe type.
Note - this is not the default method for encoding Maybe
, use encodeMaybe
instead
encodeStrictMaybe ∷ (a → Encoding) → StrictMaybe a → Encoding Source #
encodeNullStrictMaybe ∷ (a → Encoding) → StrictMaybe a → Encoding Source #
Alternative way to encode a Maybe type.
Note - this is not the default method for encoding StrictMaybe
, use
encodeStrictMaybe
instead
encodePair ∷ (a → Encoding) → (b → Encoding) → (a, b) → Encoding Source #
Deprecated: In favor of encodeTuple
encodeRatioWithTag ∷ (t → Encoding) → Ratio t → Encoding Source #
Encode a rational number with tag 30, as per tag assignment: https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml
encodeEnum ∷ Enum a ⇒ a → Encoding Source #
encodeWithOrigin ∷ (a → Encoding) → WithOrigin a → Encoding Source #
Containers
encodeList ∷ (a → Encoding) → [a] → Encoding Source #
Encode a list. Versions variance:
- [>= 2] - Variable length encoding for lists longer than 23 elements, otherwise exact length encoding
- [< 2] - Variable length encoding
encodeSeq ∷ (a → Encoding) → Seq a → Encoding Source #
Encode a Seq. Variable length encoding for Sequences larger than 23 elements, otherwise exact length encoding
encodeSet ∷ (a → Encoding) → Set a → Encoding Source #
Encode a Set. Versions variance:
- [>= 9] - Variable length encoding for Sets larger than 23 elements, otherwise exact
length encoding. Prefixes with a special 258
setTag
. - [>= 2] - Variable length encoding for Sets larger than 23 elements, otherwise exact length encoding
- [< 2] - Variable length encoding. Prefixes with a special 258
setTag
.
encodeMap ∷ (k → Encoding) → (v → Encoding) → Map k v → Encoding Source #
Encode a Map. Versions variance:
- [>= 2] - Variable length encoding for Maps larger than 23 key value pairs, otherwise exact length encoding
- [< 2] - Variable length encoding.
encodeVMap ∷ (Vector kv k, Vector vv v) ⇒ (k → Encoding) → (v → Encoding) → VMap kv vv k v → Encoding Source #
Mimics Map
encoder encodeMap
identically.
encodeVector ∷ Vector v a ⇒ (a → Encoding) → v a → Encoding Source #
Generic encoder for vectors. Its intended use is to allow easy
definition of EncCBOR
instances for custom vector
variableListLenEncoding Source #
∷ Int | Number of elements in the encoded data structure. |
→ Encoding | Encoding for the actual data structure |
→ Encoding |
Conditionally use variable length encoding for list like structures with length larger than 23, otherwise use exact list length encoding.
Helpers
encodeFoldableEncoder ∷ Foldable f ⇒ (a → Encoding) → f a → Encoding Source #
Encode any Foldable with the variable list length encoding, which will use indefinite encoding over 23 elements and definite otherwise.
encodeFoldableAsIndefLenList ∷ Foldable f ⇒ (a → Encoding) → f a → Encoding Source #
Encode any Foldable with indefinite list length encoding
encodeFoldableMapEncoder Source #
∷ Foldable f | |
⇒ (Word → a → Maybe Encoding) | A function that accepts an index of the value in the foldable data strucure, the actual value and optionally produces the encoding of the value and an index if that value should be encoded. |
→ f a | |
→ Encoding |
Encode a data structure as a Map with the 0-based index for a Key to a value. Uses variable map length encoding, which means an indefinite encoding for maps with over 23 elements and definite otherwise.
lengthThreshold ∷ Int Source #
This is the optimal maximum number for encoding exact length. Above that threashold using variable length encoding will result in less bytes on the wire.
Time
Network
encodeIPv4 ∷ IPv4 → Encoding Source #
ipv4ToBytes ∷ IPv4 → ByteString Source #
encodeIPv6 ∷ IPv6 → Encoding Source #
ipv6ToBytes ∷ IPv6 → ByteString Source #
Original
encodeWord ∷ Word → Encoding Source #
encodeWord8 ∷ Word8 → Encoding Source #
encodeInt8 ∷ Int8 → Encoding Source #
encodeInt16 ∷ Int16 → Encoding Source #
encodeInt32 ∷ Int32 → Encoding Source #
encodeInt64 ∷ Int64 → Encoding Source #
encodeString ∷ Text → Encoding Source #
encodeListLen ∷ Word → Encoding Source #
encodeMapLen ∷ Word → Encoding Source #
encodeTag64 ∷ Word64 → Encoding Source #
encodeBool ∷ Bool → Encoding Source #
encodeSimple ∷ Word8 → Encoding Source #
encodeFloat ∷ Float → Encoding Source #
encodeTerm ∷ Term → Encoding Source #