summaryrefslogtreecommitdiff
path: root/matrix-lang/src/binary/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'matrix-lang/src/binary/mod.rs')
-rw-r--r--matrix-lang/src/binary/mod.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/matrix-lang/src/binary/mod.rs b/matrix-lang/src/binary/mod.rs
index 53b3fe5..780d2a0 100644
--- a/matrix-lang/src/binary/mod.rs
+++ b/matrix-lang/src/binary/mod.rs
@@ -13,8 +13,7 @@ pub struct Program {
const PROGRAM_HEADER: [u8; 5] = [0x00, 0x4d, 0x41, 0x54, 0x0a];
impl Program {
- pub fn load(body: &str) -> Result<Option<Rc<Function>>> {
- let mut bytes = body.as_bytes();
+ pub fn load(bytes: &mut [u8]) -> Result<Option<Rc<Function>>> {
if bytes.len() < 6 {
return Ok(None)
}
@@ -22,7 +21,8 @@ impl Program {
if header != &PROGRAM_HEADER {
return Ok(None)
}
- let mut s = ProgramDeserializer::from(&mut bytes);
+ let mut a = &bytes[..];
+ let mut s = ProgramDeserializer::from(&mut a);
let program = <Self>::deserialize(&mut s)?;
s.finish()?;
Ok(Some(program.fun.clone()))