Skip to main content

Writer

Struct Writer 

Source
pub struct Writer { /* private fields */ }
Expand description

A Writer is used for encoding a key in OpenSSH compatible format.

Implementations§

Source§

impl Writer

Source

pub fn new() -> Writer

Creates a new Writer instance.

§Example
let writer = Writer::new();
Source

pub fn write_bytes(&mut self, val: &[u8])

Writes a byte sequence to the underlying vector. The value is represented as a the byte sequence length, followed by the actual byte sequence.

§Example
let mut writer = Writer::new();
writer.write_bytes(&[0, 0, 0, 42]);
let bytes = writer.into_bytes();
assert_eq!(bytes, vec![0, 0, 0, 4, 0, 0, 0, 42]);
Source

pub fn write_string(&mut self, val: &str)

Writes a string value to the underlying byte sequence.

§Example
let mut writer = Writer::new();
writer.write_string("a test string");
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 13, 97, 32, 116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 103]);
Source

pub fn write_u64(&mut self, val: u64)

Writes a u64 value to the underlying byte sequence.

§Example
let mut writer = Writer::new();
writer.write_u64(0xFFFFFFFFFFFFFFFF);
let bytes = writer.into_bytes();
assert_eq!(bytes, [255, 255, 255, 255, 255, 255, 255, 255]);
Source

pub fn write_u32(&mut self, val: u32)

Writes a u32 value to the underlying byte sequence.

§Example
let mut writer = Writer::new();
writer.write_u32(0xFFFFFFFF);
let bytes = writer.into_bytes();
assert_eq!(bytes, [255, 255, 255, 255]);
Source

pub fn write_mpint(&mut self, val: &[u8])

Writes an mpint value to the underlying byte sequence. If the MSB bit of the first byte is set then the number is negative, otherwise it is positive. Positive numbers must be preceeded by a leading zero byte according to RFC 4251, section 5.

§Example
let mut writer = Writer::new();
writer.write_mpint(&[1, 0, 1]);
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 3, 1, 0, 1]);
Source

pub fn write_string_vec(&mut self, vec: &[String])

Writes a Vec<String> to the underlying byte sequence.

§Example
let mut writer = Writer::new();
 
writer.write_string_vec(&vec![String::from("Test"), String::from("Test")]);
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 16, 0, 0, 0, 4, 84, 101, 115, 116, 0, 0, 0, 4, 84, 101, 115, 116]);
Source

pub fn write_string_map(&mut self, map: &HashMap<String, String>)

Writes a HashMap<String, String> to the underlying byte sequence.

§Example
 
let mut writer = Writer::new();
let mut example_map = HashMap::new();
example_map.insert(String::from("Test"), String::from(""));
writer.write_string_map(&example_map);
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 12, 0, 0, 0, 4, 84, 101, 115, 116, 0, 0, 0, 0]);
Source

pub fn write_pub_key(&mut self, key: &PublicKey)

Writes a PublicKey to the underlying byte sequence.

§Example
Source

pub fn into_bytes(self) -> Vec<u8>

Converts the Writer into a byte sequence. This consumes the underlying byte sequence used by the Writer.

§Example
 
let mut writer = Writer::new();
writer.write_string("some data");
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 9, 115, 111, 109, 101, 32, 100, 97, 116, 97]);
Source

pub fn as_bytes(&self) -> &[u8]

Converts the Writer into a byte sequence. This consumes the underlying byte sequence used by the Writer.

§Example
 
let mut writer = Writer::new();
writer.write_string("some data");
let bytes = writer.into_bytes();
assert_eq!(bytes, [0, 0, 0, 9, 115, 111, 109, 101, 32, 100, 97, 116, 97]);

Trait Implementations§

Source§

impl Debug for Writer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Writer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.