+ fn write<W: Writer>(&self, writer: &mut W) -> Result<(), ::std::io::Error>;
+
+ /// Writes self out to a Vec<u8>
+ fn encode(&self) -> Vec<u8> {
+ let mut msg = VecWriter(Vec::new());
+ self.write(&mut msg).unwrap();
+ msg.0
+ }
+
+ /// Writes self out to a Vec<u8>
+ fn encode_with_len(&self) -> Vec<u8> {
+ let mut msg = VecWriter(Vec::new());
+ 0u16.write(&mut msg).unwrap();
+ self.write(&mut msg).unwrap();
+ let len = msg.0.len();
+ msg.0[..2].copy_from_slice(&byte_utils::be16_to_array(len as u16 - 2));
+ msg.0
+ }