pub struct EClass {
pub id: EClassId,
pub representative: TermId,
pub members: FxHashSet<TermId>,
pub parents: FxHashSet<EClassId>,
pub size: usize,
}Expand description
E-class (equivalence class in e-graph).
Fields§
§id: EClassIdUnique identifier.
representative: TermIdRepresentative term.
members: FxHashSet<TermId>All terms in this class.
parents: FxHashSet<EClassId>Parent e-classes (for congruence).
size: usizeSize of this e-class (for union-by-size).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EClass
impl RefUnwindSafe for EClass
impl Send for EClass
impl Sync for EClass
impl Unpin for EClass
impl UnwindSafe for EClass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more