summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 005e9bf..3cb2198 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -127,6 +127,8 @@ mod vm;
 
 pub use pattern::Pattern;
 
+pub use vm::Matcher;
+
 // TODO replace with GATs
 /// A borrowed or owned value of various types.
 ///
@@ -199,24 +201,14 @@ pub trait PatternTypes {
     /// None if this operation is unsupported for the given value.
     fn pairs<'b>(
         item: RefOwn<'b, Self::Ref, Self::Own>
-    ) -> Option<Box<dyn Iterator<Item=KVPair<'b, Self>> + 'b>> {
-        // TODO remove these default impls that only exist for testing purposes
-        let _ = item;
-        let x = None;
-        Some(Box::new(x.into_iter()))
-    }
+    ) -> Option<Box<dyn Iterator<Item=KVPair<'b, Self>> + 'b>>;
 
     /// Returns an optional key-value pair keyed by the given key, or None if
     /// this operation is unsupported for the given value.
     fn get<'a, 'b>(
         item: RefOwn<'b, Self::Ref, Self::Own>,
         key: RefOwn<'a, Self::Ref, Self::Own>
-    ) -> Option<Option<KVPair<'b, Self>>> {
-        // TODO remove these default impls that only exist for testing purposes
-        let _ = item;
-        let _ = key;
-        Some(None)
-    }
+    ) -> Option<Option<KVPair<'b, Self>>>;
 
     // TODO replace with GATs + newtypes
     /// Returns whether two keys/values are the same/equivalent. This must provide