Struct tetsy_rlp::RlpStream [−][src]
pub struct RlpStream { /* fields omitted */ }
Expand description
Appendable rlp encoder.
Implementations
Initializes instance of empty Stream
.
Initializes the Stream
as a list.
Apends null to the end of stream, chainable.
use tetsy_rlp::RlpStream; 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]);
Appends raw (pre-serialised) RLP data. Use with caution. Chainable.
Appends value to the end of stream, chainable.
use tetsy_rlp::RlpStream; 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 iterator to the end of stream, chainable.
use tetsy_rlp::RlpStream; let mut stream = RlpStream::new_list(2); stream.append(&"cat").append_iter("dog".as_bytes().iter().cloned()); 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.
use tetsy_rlp::RlpStream; 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 overflow.
Calculate total RLP size for appended payload.
Clear the output stream so far.
use tetsy_rlp::RlpStream; 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.
use tetsy_rlp::RlpStream; 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']);
Finalize current unbounded list. Panics if no unbounded list has been opened.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for RlpStream
impl UnwindSafe for RlpStream