純粋な質問だけどマクロ使わずにできる?
以下のような感じに

static x: X<中身の型> = X::new(初期化式);
assert_eq!(&x, 中身の型と比較可能な値);
x.do_something(); // メソッド呼び出し