OwnedValue

Enum OwnedValue 

Source
pub enum OwnedValue {
    Integer(i64),
    IntegerBytes(Vec<u8>),
    Bytes(Vec<u8>),
    List(Vec<Self>),
    Dictionary(BTreeMap<Vec<u8>, Self>),
}
Expand description

An owned bencode value that serializes canonically.

Variants§

§

Integer(i64)

Signed bencode integer.

§

IntegerBytes(Vec<u8>)

Arbitrary-precision canonical signed decimal bytes.

§

Bytes(Vec<u8>)

Raw byte string.

§

List(Vec<Self>)

Ordered list of values.

§

Dictionary(BTreeMap<Vec<u8>, Self>)

Dictionary stored in canonical raw-byte key order.

Implementations§

Source§

impl OwnedValue

Source

pub const fn integer(value: i64) -> Self

Creates an integer value.

Source

pub fn integer_bytes(value: impl AsRef<[u8]>) -> Result<Self>

Creates an arbitrary-precision canonical integer.

§Errors

Returns a canonical error for empty digits, non-digits, a plus sign, leading zeroes, or negative zero.

Source

pub fn bytes(value: impl Into<Vec<u8>>) -> Self

Creates a byte-string value.

Source

pub fn list(values: impl IntoIterator<Item = Self>) -> Self

Creates a list value.

Source

pub fn dictionary( entries: impl IntoIterator<Item = (Vec<u8>, Self)>, ) -> Result<Self>

Creates a dictionary and rejects duplicate raw byte keys.

§Errors

Returns a canonical error if the input contains duplicate keys.

Source

pub fn encoded_len(&self) -> usize

Returns the exact canonical encoded length.

Source

pub fn write_to(&self, writer: &mut impl Write) -> Result<()>

Writes canonical bencode to a byte writer.

§Errors

Returns an I/O error preserving the writer’s original error as its source.

Source

pub fn to_vec(&self) -> Result<Vec<u8>>

Encodes this value into a pre-sized byte vector.

§Errors

Returns an I/O error if writing to the vector unexpectedly fails.

Trait Implementations§

Source§

impl Clone for OwnedValue

Source§

fn clone(&self) -> OwnedValue

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OwnedValue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for OwnedValue

Source§

fn eq(&self, other: &OwnedValue) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for OwnedValue

Source§

impl StructuralPartialEq for OwnedValue

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.