Trait ssh_encoding::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§
Required Methods§
Object Safety§
Implementations on Foreign Types§
source§impl Decode for bool
impl Decode for bool
Decode a boolean as described in RFC4251 § 5:
A boolean value is stored as a single byte. The value 0 represents FALSE, and the value 1 represents TRUE. All non-zero values MUST be interpreted as TRUE; however, applications MUST NOT store values other than 0 and 1.
source§impl Decode for u32
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§impl Decode for u64
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§impl Decode for usize
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§impl Decode for Vec<u8>
Available on crate feature alloc only.
impl Decode for Vec<u8>
alloc only.Decodes Vec<u8> from string as described in RFC4251 § 5:
Arbitrary length binary string. Strings are allowed to contain arbitrary binary data, including null characters and 8-bit characters. They are stored as a uint32 containing its length (number of bytes that follow) and zero (= empty string) or more bytes that are the value of the string. Terminating null characters are not used.
source§impl Decode for Bytes
Available on crate feature bytes only.
impl Decode for Bytes
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§impl<const N: usize> Decode for [u8; N]
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.