stevenrwalter icon

Untitled

stevenrwalter | PRO | 01/20/14 09:10:22 PM UTC | 0 ⭐ | 190 👁️ | Never ⏰ | []
C |

960 B

|

None

|

0 👍

/

0 👎

enum MyEnum {
        MyEnumA = 1,
        MyEnumB = 2,
    MyEnumEmpty;
}
 
impl enum_set::CLike for MyEnum {
        fn to_uint(&self) -> uint {
                *self as uint
        }
 
        fn from_uint(u : uint) -> MyEnum {
                if (u == (MyEnumA as uint)) {
                        MyEnumA
        } else if (u == (MyEnumB as uint)) {
            MyEnumB
                } else {
                        MyEnumEmpty
                }
        }
}
 
type MyEnumSet = enum_set::EnumSet<MyEnum>;
 
fn main () {
        let (port, chan) = Chan::new();
        let (num_port, num_chan) = SharedChan::new();
        let bar : uint = 0xdeadbeef;
        let mut foo : MyEnumSet = enum_set::EnumSet::empty();
 
        for i in range(0,8 * 4) {
                let bit = bar & (1 << i);
                if (bit != 0) {
                        let e : MyEnum = enum_set::CLike::from_uint(bit);
                        foo.add(e);
                }
        }
}

Comments