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.