Crate cbor_event[][src]

CBOR event library

cbor_event is a minimalist CBOR implementation of the CBOR binary serialisation format. It provides a simple yet efficient way to parse CBOR without the need for an intermediate type representation.

Here is the list of supported CBOR primary Type:

  • Unsigned and Negative Integers;
  • Bytes and UTF8 String (finite length only);
  • Array and Map (of finite and indefinite size);
  • Tag;
  • Specials (bool, null... except floating points).

Raw deserialisation: RawCbor

Deserialisation works by consuming a RawCbor content. To avoid performance issues some objects use a reference to the original source RawCbor internal buffer. They are then linked to the object by an associated lifetime, this is true for Bytes.

use cbor_event::de::*;

let vec = vec![0x43, 0x01, 0x02, 0x03];
let mut raw = RawCbor::from(&vec);
let bytes = raw.bytes().unwrap();

For convenience, we provide the trait Deserialize to help writing simpler deserializers for your types.

Serialisation: Serializer

To serialise your objects into CBOR we provide a simple object Serializer. It is configurable with any std::io::Write objects. Serializer is meant to be simple to use and to have limited overhead.

use cbor_event::se::{Serializer};

let serializer = Serializer::new_vec();
let serializer = serializer.write_negative_integer(-12)
    .expect("write a negative integer");

Re-exports

pub use de::Deserialize;
pub use se::Serialize;

Modules

de

CBOR deserialisation tooling

se

CBOR serialisation tooling

Macros

cbor

macro to efficiently serialise the given structure into cbor binary.

Structs

Bytes

Raw bytes as a slice of given length of the original buffer.

Enums

Error

all expected error for cbor parsing and serialising

Len

CBOR len: either a fixed size or an indefinite length.

ObjectKey

CBOR Object key, represents the possible supported values for a CBOR key in a CBOR Map.

Special

CBOR special (as in Special Primary Type).

Type

CBOR Major Types

Value

All possible CBOR supported values.

Functions

test_encode_decode

exported as a convenient function to test the implementation of Serialize and Deserialize.

Type Definitions

Result

Result type for CBOR serialisation and deserialisation.