Struct bsn1::Ber [−][src]
pub struct Ber { /* fields omitted */ }
Expand description
Ber
owns BerRef
and represents a BER.
Implementations
impl Ber
[src]
impl Ber
[src]pub fn new(id: &IdRef, contents: &[u8]) -> Self
[src]
pub fn new(id: &IdRef, contents: &[u8]) -> Self
[src]Creates a new instance from id
and contents
with definite length.
Note that BER allows both definite and indefinite length, however, the length of the return value is always definite. (Generally speaking, the performance of definite length is better than that of indefinite length. Indefinite length is seldom used these days.)
Examples
use bsn1::{Ber, IdRef}; let id = IdRef::octet_string(); let _ber = Ber::new(id, &[]);
pub fn from_id_iterator<I>(id: &IdRef, contents: I) -> Self where
I: Iterator + Clone,
I::Item: AsRef<[u8]>,
[src]
pub fn from_id_iterator<I>(id: &IdRef, contents: I) -> Self where
I: Iterator + Clone,
I::Item: AsRef<[u8]>,
[src]Creates a new instance from id
and contents
.
Examples
use bsn1::{Ber, IdRef}; let id = IdRef::sequence(); // Build instance using function 'from_id_iterator()'. let contents: &[Ber] = &[Ber::utf8_string("foo"), Ber::integer(29)]; let ber = Ber::from_id_iterator(id, contents.iter()); // Build instance using function 'new()'. let contents: Vec<u8> = contents.iter() .map(|i| Vec::from(i.as_ref() as &[u8])) .flatten().collect(); let expected = Ber::new(id, &contents); assert_eq!(expected, ber);
pub fn boolean(val: bool) -> Self
[src]
pub fn boolean(val: bool) -> Self
[src]Returns a new instance representing boolean.
Examples
use bsn1::{contents, Ber, IdRef}; let val = true; let ber = Ber::boolean(val); assert_eq!(IdRef::boolean(), ber.id()); assert_eq!(val, contents::to_bool_ber(ber.contents()).unwrap());
pub fn integer(val: i128) -> Self
[src]
pub fn integer(val: i128) -> Self
[src]Returns a new instance representing ingeger.
Examples
use bsn1::{contents, Ber, IdRef}; let val = 39; let ber = Ber::integer(val); assert_eq!(IdRef::integer(), ber.id()); assert_eq!(val, contents::to_integer(ber.contents()).unwrap());
pub fn utf8_string(val: &str) -> Self
[src]
pub fn utf8_string(val: &str) -> Self
[src]Returns a new instance representing utf8_string.
Examples
use bsn1::{Ber, IdRef}; let val = &"foo"; let ber = Ber::utf8_string(val); assert_eq!(IdRef::utf8_string(), ber.id()); assert_eq!(val.as_bytes(), ber.contents());
Methods from Deref<Target = BerRef>
pub fn id(&self) -> &IdRef
[src]
pub fn id(&self) -> &IdRef
[src]Provides a reference to IdRef
of self
.
Examples
use bsn1::{Ber, BerRef, IdRef}; let id = IdRef::octet_string(); let contents = &[1, 2, 3]; // 'Ber' implements 'Deref<Target=BerRef>.' let ber = Ber::new(id, contents); assert_eq!(id, ber.id());
pub fn length(&self) -> Length
[src]
pub fn length(&self) -> Length
[src]Returns Length
of self
.
Warnings
Length
stands for ‘the length octets of the contents’ in BER.
The total bytes is greater than the value.
Examples
use bsn1::{Ber, BerRef, IdRef, Length}; let id = IdRef::octet_string(); let contents = &[1, 2, 3]; // 'Ber' implements 'Deref<Target=BerRef>.' let ber = Ber::new(id, contents); assert_eq!(Length::Definite(contents.len()), ber.length());
pub fn contents(&self) -> &[u8]
[src]
pub fn contents(&self) -> &[u8]
[src]Provides a reference to the ‘contents’ octets of self
.
Examples
use bsn1::{Ber, BerRef, IdRef}; let id = IdRef::octet_string(); let contents = &[1, 2, 3]; // 'Ber' implements 'Deref<Target=BerRef>.' let ber = Ber::new(id, contents); assert_eq!(contents, ber.contents());
Trait Implementations
impl Eq for Ber
[src]
impl StructuralEq for Ber
[src]
impl StructuralPartialEq for Ber
[src]
Auto Trait Implementations
impl RefUnwindSafe for Ber
impl Send for Ber
impl Sync for Ber
impl Unpin for Ber
impl UnwindSafe for Ber
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more