summary refs log tree commit diff stats
path: root/src/pattern.rs
diff options
context:
space:
mode:
authorSoniEx2 <endermoneymod@gmail.com>2022-10-10 23:50:37 -0300
committerSoniEx2 <endermoneymod@gmail.com>2022-10-10 23:50:37 -0300
commitdcf5620842edb8a4632cde794c8e511e075d3662 (patch)
treef96498f2a455ce092a32b83c00e999102b5edd31 /src/pattern.rs
parentf0e944696144016ca59aaed02381f7ea9d1ef848 (diff)
Initial implementation of Packer::deserialize
Diffstat (limited to 'src/pattern.rs')
-rw-r--r--src/pattern.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/pattern.rs b/src/pattern.rs
index 0fc6acd..a0c0ec3 100644
--- a/src/pattern.rs
+++ b/src/pattern.rs
@@ -42,9 +42,18 @@ impl<O: Serialize> Pattern<O> {
         De: Deserialize<'de>,
     {
         let mut err = Default::default();
-        let interp = vm::Interpreter::new(&self.consts, &mut err);
-        let pack = vm::Packer::new(interp, MAX_CALLS).deserialize(der)?;
-        let de = De::deserialize(vm::Unpacker::new(pack.0, MAX_CALLS));
+        let frames = Default::default();
+        //let mut output = Default::default();
+        let interp = vm::Interpreter::new(
+            &self.consts,
+            &mut err,
+            &frames,
+            //&mut output,
+        );
+        let (pack, obj) = vm::Packer::new(interp, MAX_CALLS).deserialize(der)?;
+        // this should always be None
+        debug_assert!(obj.is_none());
+        let de = De::deserialize(vm::Unpacker::new(pack, MAX_CALLS));
         todo!()
     }
 }