ssh_encoding

Trait Decode

Source
pub trait Decode: Sized {
    type Error: From<Error>;

    // Required method
    fn decode(reader: &mut impl Reader) -> Result<Self, Self::Error>;
}
Expand description

Decoding trait.

This trait describes how to decode a given type.

Required Associated Types§

Source

type Error: From<Error>

Type returned in the event of a decoding error.

Required Methods§

Source

fn decode(reader: &mut impl Reader) -> Result<Self, Self::Error>

Attempt to decode a value of this type using the provided Reader.

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 Decode for u8

Decode a single byte from the input data.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for u32

Decode a uint32 as described in RFC4251 § 5:

Represents a 32-bit unsigned integer. Stored as four bytes in the order of decreasing significance (network byte order). For example: the value 699921578 (0x29b7f4aa) is stored as 29 b7 f4 aa.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for u64

Decode a uint64 as described in RFC4251 § 5:

Represents a 64-bit unsigned integer. Stored as eight bytes in the order of decreasing significance (network byte order).

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for usize

Decode a usize.

Uses Decode impl on u32 and then converts to a usize, handling potential overflow if usize is smaller than u32.

Enforces a library-internal limit of 1048575, as the main use case for usize is length prefixes.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for String

Available on crate feature alloc only.
Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for Vec<u8>

Available on crate feature alloc only.

Decodes Vec<u8> from byte[n] as described in RFC4251 § 5:

A byte represents an arbitrary 8-bit value (octet). Fixed length data is sometimes represented as an array of bytes, written byte[n], where n is the number of bytes in the array.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for Vec<String>

Available on crate feature alloc only.
Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl Decode for Bytes

Available on crate feature bytes only.

Decodes Bytes from byte[n] as described in RFC4251 § 5:

A byte represents an arbitrary 8-bit value (octet). Fixed length data is sometimes represented as an array of bytes, written byte[n], where n is the number of bytes in the array.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Source§

impl<const N: usize> Decode for [u8; N]

Decodes a byte array from byte[n] as described in RFC4251 § 5:

A byte represents an arbitrary 8-bit value (octet). Fixed length data is sometimes represented as an array of bytes, written byte[n], where n is the number of bytes in the array.

Source§

type Error = Error

Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Implementors§