Struct mun_memory::gc::MarkSweep [−][src]
Implements a simple mark-sweep type garbage collector.
Implementations
impl<T, O> MarkSweep<T, O> where
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
[src]
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
pub fn with_observer(observer: O) -> Self
[src]
Creates a MarkSweep
memory collector with the specified Observer
.
pub fn observer(&self) -> &O
[src]
Returns the observer
impl<T, O> MarkSweep<T, O> where
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
[src]
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
pub fn collect(&self) -> bool
[src]
Collects all memory that is no longer referenced by rooted objects. Returns true
if memory
was reclaimed, false
otherwise.
Trait Implementations
impl<T: Debug, O: Debug> Debug for MarkSweep<T, O> where
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
[src]
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
impl<T, O> Default for MarkSweep<T, O> where
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event> + Default,
[src]
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event> + Default,
impl<T, O> GcRuntime<T> for MarkSweep<T, O> where
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
[src]
T: TypeMemory + TypeTrace + Clone,
O: Observer<Event = Event>,
fn alloc(&self, ty: T) -> GcPtr
[src]
fn ptr_type(&self, handle: GcPtr) -> T
[src]
fn root(&self, handle: GcPtr)
[src]
fn unroot(&self, handle: GcPtr)
[src]
fn stats(&self) -> Stats
[src]
impl<T, O> MemoryMapper<T> for MarkSweep<T, O> where
T: TypeDesc + TypeMemory + TypeTrace + Clone + Eq + Hash,
O: Observer<Event = Event>,
[src]
T: TypeDesc + TypeMemory + TypeTrace + Clone + Eq + Hash,
O: Observer<Event = Event>,
fn map_memory(&self, mapping: Mapping<T, T>) -> Vec<GcPtr>
[src]
Auto Trait Implementations
impl<T, O> !RefUnwindSafe for MarkSweep<T, O>
impl<T, O> Send for MarkSweep<T, O>
impl<T, O> Sync for MarkSweep<T, O>
impl<T, O> Unpin for MarkSweep<T, O> where
O: Unpin,
O: Unpin,
impl<T, O> UnwindSafe for MarkSweep<T, O> where
O: UnwindSafe,
T: UnwindSafe,
O: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,