pub trait Writeable {
    fn write_onto<B: Writer + ?Sized>(&self, b: &mut B);
}
Expand description

Trait for an object that can be encoded onto a Writer by reference.

Implement this trait in order to make an object writeable.

Most code won’t need to call this directly, but will instead use it implicitly via the Writer::write() method.

Example

use tor_bytes::{Writeable, Writer};
#[derive(Debug, Eq, PartialEq)]
struct Message {
  flags: u32,
  cmd: u8
}

impl Writeable for Message {
    fn write_onto<B:Writer+?Sized>(&self, b: &mut B) {
        // We'll say that a "Message" is encoded as flags, then command.
        b.write_u32(self.flags);
        b.write_u8(self.cmd);
    }
}

let msg = Message { flags: 0x43, cmd: 0x07 };
let mut writer: Vec<u8> = Vec::new();
writer.write(&msg);
assert_eq!(writer, &[0x00, 0x00, 0x00, 0x43, 0x07 ]);

Required Methods

Encode this object into the writer b.

Implementations on Foreign Types

Implementors