Skip to main content

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".

Implementations on Foreign Types§

Source§

impl ToBencode for &str

Source§

const MAX_DEPTH: usize = 0

Source§

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

Source§

impl ToBencode for String

Source§

const MAX_DEPTH: usize = 0

Source§

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

Source§

impl ToBencode for i8

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for i16

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for i32

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for i64

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for i128

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for isize

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for u8

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for u16

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for u32

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for u64

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for u128

Source§

const MAX_DEPTH: usize = 1

Source§

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

Source§

impl ToBencode for usize

Source§

const MAX_DEPTH: usize = 1

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 Vec<ContentT>
where ContentT: ToBencode,

Source§

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

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<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<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§

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