Struct rlp::RlpStream[][src]

pub struct RlpStream { /* fields omitted */ }

Appendable rlp encoder.

Methods

impl RlpStream
[src]

Initializes instance of empty Stream.

Initializes the Stream as a list.

Apends null to the end of stream, chainable.

extern crate rlp;
use rlp::*;

fn main () {
    let mut stream = RlpStream::new_list(2);
    stream.append_empty_data().append_empty_data();
    let out = stream.out();
    assert_eq!(out, vec![0xc2, 0x80, 0x80]);
}

Drain the object and return the underlying ElasticArray. Panics if it is not finished.

Appends raw (pre-serialised) RLP data. Use with caution. Chainable.

Appends value to the end of stream, chainable.

extern crate rlp;
use rlp::*;

fn main () {
    let mut stream = RlpStream::new_list(2);
    stream.append(&"cat").append(&"dog");
    let out = stream.out();
    assert_eq!(out, vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g']);
}

Appends list of values to the end of stream, chainable.

Appends value to the end of stream, but do not count it as an appended item. It's useful for wrapper types

Declare appending the list of given size, chainable.

extern crate rlp;
use rlp::*;

fn main () {
    let mut stream = RlpStream::new_list(2);
    stream.begin_list(2).append(&"cat").append(&"dog");
    stream.append(&"");
    let out = stream.out();
    assert_eq!(out, vec![0xca, 0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g', 0x80]);
}

Declare appending the list of unknown size, chainable.

Appends raw (pre-serialised) RLP data. Checks for size oveflow.

Calculate total RLP size for appended payload.

Returns current RLP size in bytes for the data pushed into the list.

Clear the output stream so far.

extern crate rlp;
use rlp::*;
 
fn main () {
    let mut stream = RlpStream::new_list(3);
    stream.append(&"cat");
    stream.clear();
    stream.append(&"dog");
    let out = stream.out();
    assert_eq!(out, vec![0x83, b'd', b'o', b'g']);
}

Returns true if stream doesnt expect any more items.

extern crate rlp;
use rlp::*;

fn main () {
    let mut stream = RlpStream::new_list(2);
    stream.append(&"cat");
    assert_eq!(stream.is_finished(), false);
    stream.append(&"dog");
    assert_eq!(stream.is_finished(), true);
    let out = stream.out();
    assert_eq!(out, vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g']);
}

Get raw encoded bytes

Streams out encoded bytes.

panic! if stream is not finished.

Finalize current ubnbound list. Panics if no unbounded list has been opened.

Trait Implementations

impl Default for RlpStream
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for RlpStream

impl Sync for RlpStream