Crate option_set[][src]

Expand description

A macro and a trait for implementing a bitset/flag type that serializes to and deserializes from a sequence of strings.


extern crate option_set;
extern crate bitflags;
extern crate serde;
extern crate serde_json;

option_set! {
    struct FooOptions: UpperCamel + u16 {
        const BAR_FIRST        = 0x0001;
        const QUX_SECOND_THING = 0x0080;
        const LOL_3RD          = 0x4000;

fn main() {
    let opts_in = FooOptions::BAR_FIRST | FooOptions::LOL_3RD;
    let json = serde_json::to_string_pretty(&opts_in).unwrap();

    println!("{}", json);

    let opts_out: FooOptions = serde_json::from_str(&json).unwrap();

    println!("{:?}", opts_out);
    assert!(opts_out == opts_in);


Defines an option set type.


Type that knows how to transform the case of individual option flag names.


Trait for bit flags that forwards to std traits for useful bit operators.


Deserialize set bits from a sequence of name strings.

Serialize an OptionSet’s set bits as a sequence of strings.