1 unstable release

0.1.1 Jan 14, 2022

#2065 in Rust patterns

Apache-2.0/MIT

12KB
206 lines

stable-step

steps in stable rust

Examples

No Dependencies

[dependencies]
stable-step = "0.1"
use stable_step::{Step, StepExt};

#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
enum MyEnum {
    A,
    B,
}

impl Step for MyEnum {
    const MIN: Self = Self::A;
    const MAX: Self = Self::B;

    fn next(&self) -> Option<Self> {
        match self {
            Self::A => Some(Self::B),
            _ => None,
        }
    }

    fn prev(&self) -> Option<Self> {
        match self {
            Self::B => Some(Self::A),
            _ => None,
        }
    }
}

fn main() {
    for value in MyEnum::iter() {
        println!("{:?}", value);
    }
}

Proc Macros

[dependencies]
stable-step = { version = "0.1", features = ["derive"] }
use stable_step::{Step, StepExt};

#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Step)]
enum MyEnum {
    A,
    B,
}

fn main() {
    for value in MyEnum::iter() {
        println!("{:?}", value);
    }
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~220KB