Copyright | (c) Duncan Coutts 2015-2017 |
---|---|
License | BSD3-style (see LICENSE.txt) |
Maintainer | duncan@community.haskell.org |
Stability | experimental |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
A simpler form than CBOR for writing out
Encoding
values that allows
easier verification and testing. While this library primarily focuses
on taking
Encoding
values (independent of any underlying format)
and serializing them into CBOR format, this module offers an alternative
format called
FlatTerm
for serializing
Encoding
values.
The
FlatTerm
form is very simple and internally mirrors the original
Encoding
type very carefully. The intention here is that once you
have
Encoding
and
Decoding
values for your types, you can
round-trip values through
FlatTerm
to catch bugs more easily and with
a smaller amount of code to look through.
For that reason, this module is primarily useful for client libraries, and even then, only for their test suites to offer a simpler form for doing encoding tests and catching problems in an encoder and decoder.
Synopsis
- type FlatTerm = [ TermToken ]
-
data
TermToken
- = TkInt ! Int
- | TkInteger ! Integer
- | TkBytes ! ByteString
- | TkBytesBegin
- | TkString ! Text
- | TkStringBegin
- | TkListLen ! Word
- | TkListBegin
- | TkMapLen ! Word
- | TkMapBegin
- | TkBreak
- | TkTag ! Word64
- | TkBool ! Bool
- | TkNull
- | TkSimple ! Word8
- | TkFloat16 ! Float
- | TkFloat32 ! Float
- | TkFloat64 ! Double
- toFlatTerm :: Encoding -> FlatTerm
- fromFlatTerm :: ( forall s. Decoder s a) -> FlatTerm -> Either String a
- validFlatTerm :: FlatTerm -> Bool
- decodeTermToken :: Decoder s TermToken
Types
type FlatTerm = [ TermToken ] Source #
A "flat" representation of an
Encoding
value,
useful for round-tripping and writing tests.
Since: 0.2.0.0
A concrete encoding of
Encoding
values, one
which mirrors the original
Encoding
type closely.
Since: 0.2.0.0
Instances
Eq TermToken Source # | |
Ord TermToken Source # | |
Defined in Codec.CBOR.FlatTerm |
|
Show TermToken Source # | |
Functions
Ensure a
FlatTerm
is internally consistent and was created in a valid
manner.
Since: 0.2.0.0