Trait ssh_protocol::Encode
source · pub trait Encode {
// Required methods
fn encoded_len(&self) -> Result<usize, Error>;
fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>;
// Provided methods
fn encoded_len_prefixed(&self) -> Result<usize, Error> { ... }
fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error> { ... }
}
Expand description
Encoding trait.
This trait describes how to encode a given type.
Required Methods§
sourcefn encoded_len(&self) -> Result<usize, Error>
fn encoded_len(&self) -> Result<usize, Error>
Get the length of this type encoded in bytes, prior to Base64 encoding.
Provided Methods§
sourcefn encoded_len_prefixed(&self) -> Result<usize, Error>
fn encoded_len_prefixed(&self) -> Result<usize, Error>
Return the length of this type after encoding when prepended with a
uint32
length prefix.
sourcefn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>
fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>
Encode this value, first prepending a uint32
length prefix
set to Encode::encoded_len
.
Object Safety§
Implementations on Foreign Types§
source§impl Encode for &str
impl Encode for &str
Encode a 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.
Strings are also used to store text. In that case, US-ASCII is used for internal names, and ISO-10646 UTF-8 for text that might be displayed to the user. The terminating null character SHOULD NOT normally be stored in the string. For example: the US-ASCII string “testing” is represented as 00 00 00 07 t e s t i n g. The UTF-8 mapping does not alter the encoding of US-ASCII characters.
source§impl Encode for KeypairData
impl Encode for KeypairData
source§impl Encode for u32
impl Encode for u32
Encode 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 Encode for u64
impl Encode for u64
Encode 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 Encode for usize
impl Encode for usize
Encode a usize
as a uint32
as described in RFC4251 § 5.
Uses Encode
impl on u32
after converting from a usize
, handling
potential overflow if usize
is bigger than u32
.
source§impl Encode for OptionsMap
impl Encode for OptionsMap
source§impl Encode for DsaKeypair
impl Encode for DsaKeypair
source§impl Encode for DsaPrivateKey
impl Encode for DsaPrivateKey
source§impl Encode for Ed25519Keypair
impl Encode for Ed25519Keypair
source§impl Encode for OpaqueKeypair
impl Encode for OpaqueKeypair
source§impl Encode for OpaquePrivateKeyBytes
impl Encode for OpaquePrivateKeyBytes
source§impl Encode for RsaKeypair
impl Encode for RsaKeypair
source§impl Encode for RsaPrivateKey
impl Encode for RsaPrivateKey
source§impl Encode for DsaPublicKey
impl Encode for DsaPublicKey
source§impl Encode for Ed25519PublicKey
impl Encode for Ed25519PublicKey
source§impl Encode for OpaquePublicKey
impl Encode for OpaquePublicKey
source§impl Encode for OpaquePublicKeyBytes
impl Encode for OpaquePublicKeyBytes
source§impl Encode for RsaPublicKey
impl Encode for RsaPublicKey
source§impl Encode for [u8]
impl Encode for [u8]
Encodes [u8]
into 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> Encode for [u8; N]
impl<const N: usize> Encode for [u8; N]
Encodes [u8; N]
into 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.