chiark / gitweb /
if_let: Let variants be paths
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 2 Apr 2021 16:56:08 +0000 (17:56 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 2 Apr 2021 19:04:17 +0000 (20:04 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
base/misc.rs

index 26a7ca67cf271523920648099edf286a43bc10fe..7ee1c6f58da340e3b088ff073b9eff9c24ae1e52 100644 (file)
@@ -67,12 +67,12 @@ pub fn space_rect_attrs(table_size: PosC<f64>) -> SvgAttrs {
 
 #[macro_export]
 macro_rules! if_let {
-  { $variant:ident($binding:pat) = $input:expr;
+  { $($variant:ident)::+ ($binding:pat) = $input:expr;
     else $($otherwise:tt)*
   } => {
     let $binding = match $input {
-      $variant(y) => y,
+      $($variant)::+ (y) => y,
       _ => { $($otherwise)* },
     };
-  }
+  };
 }