pub trait ScanObjectsWork<VM: VMBinding>: GCWork<VM> + Sized {
type E: ProcessEdgesWork<VM = VM>;
// Required methods
fn post_scan_object(&self, object: ObjectReference);
fn get_bucket(&self) -> WorkBucketStage;
// Provided method
fn do_work_common(
&self,
buffer: &[ObjectReference],
worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>,
mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM>,
) { ... }
}Expand description
Trait for a work packet that scans objects
Required Associated Types§
Sourcetype E: ProcessEdgesWork<VM = VM>
type E: ProcessEdgesWork<VM = VM>
The associated ProcessEdgesWork for processing the outgoing edges of the objects in this packet.
Required Methods§
Sourcefn post_scan_object(&self, object: ObjectReference)
fn post_scan_object(&self, object: ObjectReference)
Called after each object is scanned.
Sourcefn get_bucket(&self) -> WorkBucketStage
fn get_bucket(&self) -> WorkBucketStage
Return the work bucket for this work packet and its derived work packets.
Provided Methods§
Sourcefn do_work_common(
&self,
buffer: &[ObjectReference],
worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>,
mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM>,
)
fn do_work_common( &self, buffer: &[ObjectReference], worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>, mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM>, )
The common code for ScanObjects and PlanScanObjects.
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.