cborg-0.2.5.0: Concise Binary Object Representation (CBOR)
Copyright(c) Duncan Coutts 2015-2017
LicenseBSD3-style (see LICENSE.txt)
Maintainerduncan@community.haskell.org
Stabilityexperimental
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Codec.CBOR.Read

Description

Tools for reading values in a CBOR-encoded format back into ordinary values.

Synopsis

Documentation

deserialiseFromBytes :: (forall s. Decoder s a) -> ByteString -> Either DeserialiseFailure (ByteString, a) Source #

Given a Decoder and some ByteString representing an encoded CBOR value, return Either the decoded CBOR value or an error. In addition to the decoded value return any remaining input content.

Since: 0.2.0.0

deserialiseFromBytesWithSize :: (forall s. Decoder s a) -> ByteString -> Either DeserialiseFailure (ByteString, ByteOffset, a) Source #

Given a Decoder and some ByteString representing an encoded CBOR value, return Either the decoded CBOR value or an error. In addition to the decoded value return any remaining input content and the number of bytes consumed.

Since: 0.2.0.0

deserialiseIncremental :: Decoder s a -> ST s (IDecode s a) Source #

Run a Decoder incrementally, returning a continuation representing the result of the incremental decode.

Since: 0.2.0.0

data DeserialiseFailure Source #

An exception type that may be returned (by pure functions) or thrown (by IO actions) that fail to deserialise a given input.

Since: 0.2.0.0

data IDecode s a Source #

An Incremental decoder, used to represent the result of attempting to run a decoder over a given input, and return a value of type a.

Constructors

Partial (Maybe ByteString -> ST s (IDecode s a))

The decoder has consumed the available input and needs more to continue. Provide Just if more input is available and Nothing otherwise, and you will get a new IDecode.

Done !ByteString !ByteOffset a

The decoder has successfully finished. Except for the output value you also get any unused input as well as the number of bytes consumed.

Fail !ByteString !ByteOffset DeserialiseFailure

The decoder ran into an error. The decoder either used fail or was not provided enough input. Contains any unconsumed input, the number of bytes consumed, and a DeserialiseFailure exception describing the reason why the failure occurred.

type ByteOffset = Int64 Source #

A 0-based offset within the overall byte sequence that makes up the input to the Decoder.

This is an Int64 since Decoder is incremental and can decode more data than fits in memory at once. This is also compatible with the result type of length.