use crate::records::cell::Cell;
use crate::records::phi::Phi;
use luaur_common::records::variant::Variant2;
pub type Variant = Variant2<Cell, Phi>;
pub trait VariantMember: Sized {
fn get_if(v: &Variant) -> Option<&Self>;
fn get_if_mut(v: &mut Variant) -> Option<&mut Self>;
}
impl VariantMember for Cell {
fn get_if(v: &Variant) -> Option<&Self> {
v.get_if_0()
}
fn get_if_mut(v: &mut Variant) -> Option<&mut Self> {
v.get_if_0_mut()
}
}
impl VariantMember for Phi {
fn get_if(v: &Variant) -> Option<&Self> {
v.get_if_1()
}
fn get_if_mut(v: &mut Variant) -> Option<&mut Self> {
v.get_if_1_mut()
}
}