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
fn write_onto<B: Writer + ?Sized>(&self, b: &mut B)
fn write_onto<B: Writer + ?Sized>(&self, b: &mut B)
Encode this object into the writer b
.