use crate::cons::ConsCell;
use crate::cons::traits::switches::and_switch::AndSwitch;
use crate::cons::traits::switches::contains_many_switch::ContainsAnySwitch;
use typenum::Bit;
pub trait EqualUnorderedSwitch<OtherC: ConsCell> {
type Value: Bit;
}
impl<C: ConsCell, OtherC: ConsCell> EqualUnorderedSwitch<OtherC> for C
where
C: ContainsAnySwitch<OtherC>,
OtherC: ContainsAnySwitch<C>,
<C as ContainsAnySwitch<OtherC>>::Value: AndSwitch<<OtherC as ContainsAnySwitch<C>>::Value>,
{
type Value = <<C as ContainsAnySwitch<OtherC>>::Value as AndSwitch<
<OtherC as ContainsAnySwitch<C>>::Value,
>>::Value;
}