]> git.lizzy.rs Git - enumset.git/commitdiff
Allow empty enum_set! entries (for use with macros).
authorLymia Aluysia <lymia@lymiahugs.com>
Sun, 29 Oct 2017 13:03:30 +0000 (08:03 -0500)
committerLymia Aluysia <lymia@lymiahugs.com>
Sun, 29 Oct 2017 13:05:27 +0000 (08:05 -0500)
src/lib.rs

index 2577291536399eaf889916f4fbe1bd89fa0e0ca7..4adab293ad9fb9b9f2e1aa235759fa14931f1813 100644 (file)
@@ -482,7 +482,7 @@ macro_rules! enum_set_type {
 /// ```
 #[macro_export]
 macro_rules! enum_set {
-    ($enum_name:ty, $($value:path)|+ $(|)*) => {
+    ($enum_name:ty, $($value:path)|* $(|)*) => {
         $crate::EnumSet::<$enum_name>(
             <$enum_name as $crate::EnumSetType>::ZERO
             $(| (<$enum_name as $crate::EnumSetType>::ONE << ($value as u8)))*
@@ -554,11 +554,13 @@ mod test {
                 use super::*;
 
                 const CONST_SET: EnumSet<$e> = enum_set!($e, $e::A | $e::Y);
+                const EMPTY_SET: EnumSet<$e> = enum_set!($e, );
                 #[test]
                 fn const_set() {
                     assert_eq!(CONST_SET.len(), 2);
                     assert!(CONST_SET.contains($e::A));
                     assert!(CONST_SET.contains($e::Y));
+                    assert!(EMPTY_SET.is_empty());
                 }
 
                 #[test]