usesuper::VariantType;traitVariant{fnid(&self)->&str;fnreference(&self)->&str;fnalternate(&self)->&str;fnchange_length(&self)->u32;// TODO - I think we need to own the VariantType in the Variant implementations.
// We may not be able to provide a default implementation as in Java, unless we change may need to
fnvariant_type(&self)->&VariantType;}