#![deny(warnings)]
#![allow(clippy::op_ref)]
use macro_attr_2018::macro_attr;
use newtype_derive_2018::*;
macro_attr! {
#[derive(
Copy, Clone, Eq, PartialEq, Debug,
NewtypeAdd!(*),
NewtypeNeg!(*),
)]
pub struct Dummy(i32);
}
macro_attr! {
#[derive(
Copy, Clone, Eq, PartialEq, Debug,
NewtypeAdd!(*),
NewtypeNeg!(*),
)]
pub struct DummyPub(pub i32);
}
#[test]
fn test_arith() {
let a = Dummy(4);
let b = Dummy(7);
let c = Dummy(11);
assert_eq!(a + b, c);
assert_eq!(&a + b, c);
assert_eq!(a + &b, c);
assert_eq!(&a + &b, c);
assert_eq!(-a, Dummy(-4));
assert_eq!(-&a, Dummy(-4));
let _ = DummyPub(0);
}