use crate::scheduler::gc_work::ProcessEdgesWork;
use crate::util::{Address, ObjectReference};
pub trait TransitiveClosure {
fn process_edge(&mut self, slot: Address);
fn process_node(&mut self, object: ObjectReference);
}
impl<T: ProcessEdgesWork> TransitiveClosure for T {
fn process_edge(&mut self, _slot: Address) {
unreachable!();
}
#[inline]
fn process_node(&mut self, object: ObjectReference) {
ProcessEdgesWork::process_node(self, object);
}
}