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);
}
}