ToBencode

Trait ToBencode 

Source
pub trait ToBencode {
    const MAX_DEPTH: usize;

    // Required method
    fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>;

    // Provided method
    fn to_bencode(&self) -> Result<Vec<u8>, Error> { ... }
}
Expand description

An object that can be encoded into a single bencode object

Required Associated Constants§

Source

const MAX_DEPTH: usize

The maximum depth that this object could encode to. Leaves do not consume a level, so an i1e has depth 0 and li1ee has depth 1.

A depth of 0 may also indicate a statically unknown depth. See the encoding module docs.

Required Methods§

Source

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Encode this object into the bencode stream

Provided Methods§

Source

fn to_bencode(&self) -> Result<Vec<u8>, Error>

Encode this object to a byte string

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl ToBencode for &str

Source§

const MAX_DEPTH: usize = 0usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for i8

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for i16

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for i32

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for i64

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for i128

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for isize

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for u8

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for u16

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for u32

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for u64

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for u128

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for usize

Source§

const MAX_DEPTH: usize = 1usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl ToBencode for String

Source§

const MAX_DEPTH: usize = 0usize

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl<'a, E: 'a + ToBencode + Sized> ToBencode for &'a E

Source§

const MAX_DEPTH: usize = E::MAX_DEPTH

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl<ContentT> ToBencode for &[ContentT]
where ContentT: ToBencode,

Source§

impl<ContentT> ToBencode for LinkedList<ContentT>
where ContentT: ToBencode,

Source§

impl<ContentT> ToBencode for VecDeque<ContentT>
where ContentT: ToBencode,

Source§

impl<ContentT> ToBencode for Vec<ContentT>
where ContentT: ToBencode,

Source§

impl<E: ToBencode> ToBencode for Box<E>

Available on crate feature std only.
Source§

const MAX_DEPTH: usize = E::MAX_DEPTH

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl<E: ToBencode> ToBencode for Rc<E>

Source§

const MAX_DEPTH: usize = E::MAX_DEPTH

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl<E: ToBencode> ToBencode for Arc<E>

Source§

const MAX_DEPTH: usize = E::MAX_DEPTH

Source§

fn encode(&self, encoder: SingleItemEncoder<'_>) -> Result<(), Error>

Source§

impl<K, V, S> ToBencode for HashMap<K, V, S>
where K: AsRef<[u8]> + Eq + Hash, V: ToBencode, S: BuildHasher,

Available on crate feature std only.
Source§

impl<K: AsRef<[u8]>, V: ToBencode> ToBencode for BTreeMap<K, V>

Implementors§

Source§

impl<'a> ToBencode for Value<'a>

Source§

const MAX_DEPTH: usize = 0usize

Source§

impl<I> ToBencode for AsString<I>
where I: AsRef<[u8]>,

Source§

const MAX_DEPTH: usize = 1usize