use typesum::{kinded, sumtype};
#[allow(unused)]
#[kinded]
#[sumtype(from = false, try_as = false, try_into = false, try_as_mut = false)]
enum Big {
Usz(usize),
Sts(&'static str),
A(i64),
B(i64),
C(i64),
D(i64),
E(i64),
F(i64),
G(i64),
H(i64),
I(i64),
J(i64),
K(i64),
L(i64),
M(i64),
N(i64),
O(i64),
P(i64),
Q(i64),
R(i64),
S(i64),
T(i64),
U(i64),
V(i64),
W(i64),
X(i64),
Y(i64),
Z(i64),
Aa(i64),
Ba(i64),
Ca(i64),
Da(i64),
Ea(i64),
Fa(i64),
Ga(i64),
Ha(i64),
Ia(i64),
Ja(i64),
Ka(i64),
La(i64),
Ma(i64),
Na(i64),
Oa(i64),
Pa(i64),
Qa(i64),
Ra(i64),
Sa(i64),
Ta(i64),
Ua(i64),
Va(i64),
Wa(i64),
Xa(i64),
Ya(i64),
Za(i64),
Ab(i64),
Bb(i64),
Cb(i64),
Db(i64),
Eb(i64),
Fb(i64),
Gb(i64),
Hb(i64),
Ib(i64),
Jb(i64),
Kb(i64),
Lb(i64),
Mb(i64),
Nb(i64),
Ob(i64),
Pb(i64),
Qb(i64),
Rb(i64),
Sb(i64),
Tb(i64),
Ub(i64),
Vb(i64),
Wb(i64),
Xb(i64),
Yb(i64),
Zb(i64),
Ac(i64),
Bc(i64),
Cc(i64),
Dc(i64),
Ec(i64),
Fc(i64),
Gc(i64),
Hc(i64),
Ic(i64),
Jc(i64),
Kc(i64),
Lc(i64),
Mc(i64),
Nc(i64),
Oc(i64),
Pc(i64),
Qc(i64),
Rc(i64),
Sc(i64),
Tc(i64),
Uc(i64),
Vc(i64),
Wc(i64),
Xc(i64),
Yc(i64),
Zc(i64),
Ad(i64),
Bd(i64),
Cd(i64),
Dd(i64),
Ed(i64),
Fd(i64),
Gd(i64),
Hd(i64),
Id(i64),
Jd(i64),
Kd(i64),
Ld(i64),
Md(i64),
Nd(i64),
Od(i64),
Pd(i64),
Qd(i64),
Rd(i64),
Sd(i64),
Td(i64),
Ud(i64),
Vd(i64),
Wd(i64),
Xd(i64),
Yd(i64),
Zd(i64),
}
#[test]
fn sumtype() {
let s = Big::A(54);
assert_eq!(s.as_ab(), None);
}
#[test]
fn kinded() {
let s = Big::B(54);
assert_eq!(s.kind(), BigKind::B);
}