#switch #control-flow #macro

easy_switch

A macro for traditional C-style switch statements

2 unstable releases

0.2.0 Mar 27, 2023
0.1.0 Mar 24, 2023

#1581 in Rust patterns


Used in projectable

MIT license

7KB
60 lines

easy_switch

Build status Crates.io Docs Status

A macro to emulate switch statements in C-style languages. Get rid of those long if/else if chains!

Syntax

Use the switch! macro to get started! This will look like a match expression, but of course does no actual pattern matching.

use easy_switch::switch;

#[derive(PartialEq, Eq)]
struct Example {
    field: i32,
    field2: i32,
}

impl Example {
    pub fn new(field2: i32) -> Self {
        Self {
            field: 10,
            field2,
        }
    }
}

let switchable = Example::new(10);
let result = switch! { switchable;
    Example::new(50), 50 == 50 => 50,
    Example::new(20), 50 == 50, 20 == 20 => 20,
    _ => 0,
};
assert_eq!(0, result);

Check out the docs for more information on this macro.

License

This crate is licensed under the MIT license.

No runtime deps