Module cbor::encoder [] [src]

CBOR (RFC 7049) encoder implementation.

This module provides an Encoder to directly encode Rust types into CBOR, and a GenericEncoder which encodes a Value into CBOR.

Example 1: Direct encoding

extern crate cbor;
extern crate rustc_serialize;

use cbor::Encoder;
use rustc_serialize::hex::FromHex;
use std::io::Cursor;

fn main() {
    let mut e = Encoder::new(Cursor::new(Vec::new()));
    e.u16(1000).unwrap();
    assert_eq!("1903e8".from_hex().unwrap(), e.into_writer().into_inner())
}

Example 2: Direct encoding (indefinite string)

extern crate cbor;
extern crate rustc_serialize;

use cbor::Encoder;
use rustc_serialize::hex::FromHex;
use std::io::Cursor;

fn main() {
    let mut e = Encoder::new(Cursor::new(Vec::new()));
    e.text_iter(vec!["strea", "ming"].into_iter()).unwrap();
    let output = "7f657374726561646d696e67ff".from_hex().unwrap();
    assert_eq!(output, e.into_writer().into_inner())
}

Example 3: Direct encoding (nested array)

extern crate cbor;
extern crate rustc_serialize;

use cbor::Encoder;
use rustc_serialize::hex::FromHex;
use std::io::Cursor;

fn main() {
    let mut e = Encoder::new(Cursor::new(Vec::new()));
    e.array(3)
     .and(e.u8(1))
     .and(e.array(2)).and(e.u8(2)).and(e.u8(3))
     .and(e.array(2)).and(e.u8(4)).and(e.u8(5))
     .unwrap();
    let output = "8301820203820405".from_hex().unwrap();
    assert_eq!(output, e.into_writer().into_inner())
}

Structs

Encoder

The actual encoder type definition

GenericEncoder

A generic encoder encodes a Value.

Enums

EncodeError

Type Definitions

EncodeResult