typesum 0.2.0

Utilties for enums, targeted at sum types
Documentation
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);
}