about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWesley Wiser <wwiser@gmail.com>2017-12-19 22:31:15 -0500
committerWesley Wiser <wwiser@gmail.com>2018-01-06 14:57:27 -0500
commitfc2424b988c926004b93c28524be7f8a9388bdf7 (patch)
tree816a4308d35d0d4b1c6e16f1a536a97e87f0a757
parent72176cf96cb79a0ebf62972b76dbe68c933bef4d (diff)
downloadrust-fc2424b988c926004b93c28524be7f8a9388bdf7.tar.gz
rust-fc2424b988c926004b93c28524be7f8a9388bdf7.zip
Add raw bytes functions
Part of #45875
-rw-r--r--src/libserialize/opaque.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libserialize/opaque.rs b/src/libserialize/opaque.rs
index 99557659b29..4b2549a1aed 100644
--- a/src/libserialize/opaque.rs
+++ b/src/libserialize/opaque.rs
@@ -27,6 +27,10 @@ impl<'a> Encoder<'a> {
     pub fn new(cursor: &'a mut io::Cursor<Vec<u8>>) -> Encoder<'a> {
         Encoder { cursor: cursor }
     }
+
+    pub fn emit_raw_bytes(&mut self, s: &[u8]) -> EncodeResult {
+        self.cursor.write_all(s)
+    }
 }
 
 
@@ -169,6 +173,16 @@ impl<'a> Decoder<'a> {
     pub fn advance(&mut self, bytes: usize) {
         self.position += bytes;
     }
+
+    pub fn read_raw_bytes(&mut self, s: &mut [u8]) -> Result<(), String> {
+        let len = s.len();
+
+        self.position += len;
+
+        s.copy_from_slice(&self.data[0..len]);
+
+        Ok(())
+    }
 }
 
 macro_rules! read_uleb128 {