[][src]Trait cbor_data::WriteToArray

pub trait WriteToArray {
    pub fn write_pos(&mut self, value: u64, tag: Option<u64>);
pub fn write_neg(&mut self, value: u64, tag: Option<u64>);
pub fn write_bytes(&mut self, value: &[u8], tag: Option<u64>);
pub fn write_str(&mut self, value: &str, tag: Option<u64>);
pub fn write_bool(&mut self, value: bool, tag: Option<u64>);
pub fn write_null(&mut self, tag: Option<u64>);
pub fn write_undefined(&mut self, tag: Option<u64>);
pub fn write_lit(&mut self, value: Literal, tag: Option<u64>);
pub fn write_array_rec(
        &mut self,
        tag: Option<u64>,
        f: &mut dyn FnMut(&mut dyn WriteToArray)
    );
pub fn write_dict_rec(
        &mut self,
        tag: Option<u64>,
        f: &mut dyn FnMut(&mut dyn WriteToDict)
    ); }

The actual data writing methods of ArrayBuilder.

Required methods

pub fn write_pos(&mut self, value: u64, tag: Option<u64>)[src]

Write a unsigned value of up to 64 bits.

pub fn write_neg(&mut self, value: u64, tag: Option<u64>)[src]

Write a negative value of up to 64 bits — the represented number is -1 - value.

pub fn write_bytes(&mut self, value: &[u8], tag: Option<u64>)[src]

Write the given slice as a definite size byte string.

pub fn write_str(&mut self, value: &str, tag: Option<u64>)[src]

Write the given slice as a definite size string.

pub fn write_bool(&mut self, value: bool, tag: Option<u64>)[src]

pub fn write_null(&mut self, tag: Option<u64>)[src]

pub fn write_undefined(&mut self, tag: Option<u64>)[src]

pub fn write_lit(&mut self, value: Literal, tag: Option<u64>)[src]

Write custom literal value — RFC7049 §2.3 is required reading.

pub fn write_array_rec(
    &mut self,
    tag: Option<u64>,
    f: &mut dyn FnMut(&mut dyn WriteToArray)
)
[src]

Write a nested array using the given closure that receives an array builder.

This method is very useful for recursively building a CBOR structure without statically known recursion limit, avoiding infinite type errors.

use cbor_data::{CborBuilder, WriteToArray, WriteToDict};

let mut cbor = CborBuilder::default().write_array(None);
cbor.write_array_rec(None, &mut |builder| {
    builder.write_pos(42, None);
});
let cbor = cbor.finish();

assert_eq!(cbor.as_slice(), vec![0x9fu8, 0x9f, 0x18, 42, 0xff, 0xff]);

pub fn write_dict_rec(
    &mut self,
    tag: Option<u64>,
    f: &mut dyn FnMut(&mut dyn WriteToDict)
)
[src]

Write a nested dict using the given closure that receives an dict builder.

This method is very useful for recursively building a CBOR structure without statically known recursion limit, avoiding infinite type errors.

use cbor_data::{CborBuilder, WriteToArray, WriteToDict};

let mut cbor = CborBuilder::default().write_array(None);
cbor.write_array_rec(None, &mut |builder| {
    builder.write_pos(42, None);
});
let cbor = cbor.finish();

assert_eq!(cbor.as_slice(), vec![0x9fu8, 0x9f, 0x18, 42, 0xff, 0xff]);
Loading content...

Implementations on Foreign Types

impl WriteToArray for &mut Vec<u8>[src]

Loading content...

Implementors

impl<'a, T: 'static> WriteToArray for ArrayBuilder<'a, T>[src]

Loading content...