pub trait Language: CtxEq<Self::Node, Self::Node> + CtxHash<Self::Node> {
type Node: Debug;
// Required methods
fn children<'a>(&'a self, node: &'a Self::Node) -> &'a [Id];
fn children_mut<'a>(&'a mut self, ctx: &'a mut Self::Node) -> &'a mut [Id];
fn needs_dedup(&self, node: &Self::Node) -> bool;
}
Expand description
A trait implemented by all “languages” (types that can be enodes).
Required Associated Types§
Required Methods§
fn children<'a>(&'a self, node: &'a Self::Node) -> &'a [Id]
fn children_mut<'a>(&'a mut self, ctx: &'a mut Self::Node) -> &'a mut [Id]
fn needs_dedup(&self, node: &Self::Node) -> bool
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.