pub trait Node: Sized {
type Key: Ord + Debug;
type Ptr: NodePtr<Self>;
// Required methods
fn new(node: &Self) -> Self::Ptr;
fn free(&mut self);
fn left(&self) -> &Self::Ptr;
fn left_mut(&mut self) -> &mut Self::Ptr;
fn right(&self) -> &Self::Ptr;
fn right_mut(&mut self) -> &mut Self::Ptr;
fn key(&self) -> &Self::Key;
fn update(&mut self, node: &Self);
fn is_black(&self) -> bool;
fn set_black(&mut self);
fn set_red(&mut self);
// Provided method
fn is_red(&self) -> bool { ... }
}Required Associated Types§
Required Methods§
fn new(node: &Self) -> Self::Ptr
fn free(&mut self)
fn left(&self) -> &Self::Ptr
fn left_mut(&mut self) -> &mut Self::Ptr
fn right(&self) -> &Self::Ptr
fn right_mut(&mut self) -> &mut Self::Ptr
fn key(&self) -> &Self::Key
fn update(&mut self, node: &Self)
fn is_black(&self) -> bool
fn set_black(&mut self)
fn set_red(&mut self)
Provided Methods§
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.