xtruct 0.1.0

Anonymous structs made simple
Documentation
pub use xtruct_derive::xtruct;

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn basic() {
        let x = xtruct! {
            a: 1,
            b: true,
            c: Some(8)
        };
        assert_eq!(x.a, 1);
        assert_eq!(x.b, true);
        assert_eq!(x.c, Some(8));
    }

    #[test]
    fn shorthand() {
        let b = 4usize;
        let x = xtruct! {
            a: 2,
            b,
        };
        assert_eq!(x.a, 2);
        assert_eq!(x.b, 4);
    }

    #[test]
    fn scope() {
        let x = {
            let a = 2;
            let b = true;
            xtruct! { a, b }
        };
        assert_eq!(x.a, 2);
        assert_eq!(x.b, true);
    }

    #[test]
    fn nested() {
        let x = xtruct! {
            a: 1,
            b: xtruct! {
                c: Some(()),
                d: true,
            },
        };
        assert_eq!(x.a, 1);
        assert_eq!(x.b.c, Some(()));
        assert_eq!(x.b.d, true);
    }
}