chiark / gitweb /
if_let: Provide the logically-necessary fourth case
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 14:55:01 +0000 (15:55 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 14:55:01 +0000 (15:55 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
base/misc.rs

index 66c98ffff129c7fe94dee4be9aed7f41fc35b8b4..b4cb57cd10d8512b5cbb9ab22a80822bbad36902 100644 (file)
@@ -91,6 +91,14 @@ macro_rules! if_let {
       _ => { $($otherwise)* },
     };
   };
+  { $($variant:ident)::+ {$binding:ident} = $input:expr;
+    match $($otherwise:tt)*
+  } => {
+    let $binding = match $input {
+      $($variant)::+ { $binding } => $binding,
+      $($otherwise)*,
+    };
+  };
 }
 
 #[ext(pub, name=DebugExt)]