pub struct Rlp<'a> { /* private fields */ }Expand description
Data-oriented view onto trusted rlp-slice.
Unlikely to UntrustedRlp doesn’t bother you with error
handling. It assumes that you know what you are doing.
Implementations§
Source§impl<'a, 'view> Rlp<'a>where
'a: 'view,
impl<'a, 'view> Rlp<'a>where
'a: 'view,
Sourcepub fn as_raw(&'view self) -> &'a [u8] ⓘ
pub fn as_raw(&'view self) -> &'a [u8] ⓘ
The raw data of the RLP as slice.
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
let dog = rlp.at(1).as_raw();
assert_eq!(dog, &[0x83, b'd', b'o', b'g']);
}Sourcepub fn payload_info(&self) -> PayloadInfo
pub fn payload_info(&self) -> PayloadInfo
Get payload info.
Sourcepub fn item_count(&self) -> usize
pub fn item_count(&self) -> usize
Returns number of RLP items.
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
assert_eq!(rlp.item_count(), 2);
let view = rlp.at(1);
assert_eq!(view.item_count(), 0);
}Sourcepub fn size(&self) -> usize
pub fn size(&self) -> usize
Returns the number of bytes in the data, or zero if it isn’t data.
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
assert_eq!(rlp.size(), 0);
let view = rlp.at(1);
assert_eq!(view.size(), 3);
}Sourcepub fn at(&'view self, index: usize) -> Rlp<'a>
pub fn at(&'view self, index: usize) -> Rlp<'a>
Get view onto RLP-slice at index.
Caches offset to given index, so access to successive slices is faster.
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
let dog: String = rlp.at(1).as_val();
assert_eq!(dog, "dog".to_string());
}Sourcepub fn is_null(&self) -> bool
pub fn is_null(&self) -> bool
No value
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![];
let rlp = Rlp::new(&data);
assert!(rlp.is_null());
}Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Contains a zero-length string or zero-length list.
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc0];
let rlp = Rlp::new(&data);
assert!(rlp.is_empty());
}Sourcepub fn is_list(&self) -> bool
pub fn is_list(&self) -> bool
List value
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
assert!(rlp.is_list());
}Sourcepub fn is_data(&self) -> bool
pub fn is_data(&self) -> bool
String value
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
assert!(rlp.at(1).is_data());
}Sourcepub fn is_int(&self) -> bool
pub fn is_int(&self) -> bool
Int value
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc1, 0x10];
let rlp = Rlp::new(&data);
assert_eq!(rlp.is_int(), false);
assert_eq!(rlp.at(0).is_int(), true);
}Sourcepub fn iter(&'view self) -> RlpIterator<'a, 'view> ⓘ
pub fn iter(&'view self) -> RlpIterator<'a, 'view> ⓘ
Get iterator over rlp-slices
extern crate rlp;
use rlp::*;
fn main () {
let data = vec![0xc8, 0x83, b'c', b'a', b't', 0x83, b'd', b'o', b'g'];
let rlp = Rlp::new(&data);
let strings: Vec<String> = rlp.iter().map(| i | i.as_val()).collect();
}pub fn as_list<T>(&self) -> Vec<T>where
T: Decodable,
Sourcepub fn val_at<T>(&self, index: usize) -> Twhere
T: Decodable,
pub fn val_at<T>(&self, index: usize) -> Twhere
T: Decodable,
Decode data at given list index into an object
pub fn list_at<T>(&self, index: usize) -> Vec<T>where
T: Decodable,
Trait Implementations§
Source§impl<'a> From<UntrustedRlp<'a>> for Rlp<'a>
impl<'a> From<UntrustedRlp<'a>> for Rlp<'a>
Source§fn from(rlp: UntrustedRlp<'a>) -> Rlp<'a>
fn from(rlp: UntrustedRlp<'a>) -> Rlp<'a>
Converts to this type from the input type.
Source§impl<'a, 'view> IntoIterator for &'view Rlp<'a>where
'a: 'view,
impl<'a, 'view> IntoIterator for &'view Rlp<'a>where
'a: 'view,
Auto Trait Implementations§
impl<'a> !Freeze for Rlp<'a>
impl<'a> !RefUnwindSafe for Rlp<'a>
impl<'a> Send for Rlp<'a>
impl<'a> !Sync for Rlp<'a>
impl<'a> Unpin for Rlp<'a>
impl<'a> UnwindSafe for Rlp<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more