From 25afddb63fb261650b031c447ee9f912c0c3160e Mon Sep 17 00:00:00 2001 From: kl-botsu Date: Sun, 11 Aug 2024 17:14:06 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20khonsula?= =?UTF-8?q?bs/refuse@66b4d07714e1f9ee4612519ad418fbf8c6b49e28=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/benchmarks/all.html | 2 +- main/benchmarks/index.html | 2 +- main/help.html | 2 +- main/refuse/all.html | 2 +- main/refuse/architecture/index.html | 2 +- main/refuse/derive.MapAs.html | 6 +- main/refuse/derive.Trace.html | 6 +- main/refuse/fn.collect.html | 2 +- main/refuse/fn.try_collect.html | 2 +- main/refuse/index.html | 4 +- main/refuse/struct.AnyRef.html | 48 +++++------ main/refuse/struct.AnyRoot.html | 24 +++--- main/refuse/struct.CollectionGuard.html | 16 ++-- main/refuse/struct.LocalPool.html | 2 +- main/refuse/struct.Ref.html | 60 ++++++------- main/refuse/struct.Root.html | 86 +++++++++---------- main/refuse/struct.Tracer.html | 4 +- main/refuse/struct.WouldDeadlock.html | 6 +- main/refuse/struct.YieldComplete.html | 2 +- main/refuse/struct.Yielder.html | 4 +- main/refuse/trait.Collectable.html | 4 +- main/refuse/trait.ContainsNoRefs.html | 4 +- main/refuse/trait.MapAs.html | 8 +- main/refuse/trait.NoMapping.html | 26 +++--- main/refuse/trait.SimpleType.html | 4 +- main/refuse/trait.Trace.html | 36 ++++---- main/refuse_macros/all.html | 2 +- main/refuse_macros/derive.MapAs.html | 6 +- main/refuse_macros/derive.Trace.html | 6 +- main/refuse_macros/index.html | 4 +- main/refuse_pool/all.html | 2 +- main/refuse_pool/index.html | 2 +- main/refuse_pool/struct.RefString.html | 30 +++---- main/refuse_pool/struct.RootString.html | 44 +++++----- main/search-index.js | 6 +- main/search.desc/refuse/refuse-desc-0-.js | 2 +- .../refuse_macros/refuse_macros-desc-0-.js | 2 +- main/settings.html | 2 +- main/src/benchmarks/lib.rs.html | 2 +- main/src/refuse/lib.rs.html | 58 ++++++++++--- main/src/refuse_macros/lib.rs.html | 18 +++- main/src/refuse_pool/lib.rs.html | 30 +++++-- main/trait.impl/refuse/trait.Trace.js | 2 +- 43 files changed, 323 insertions(+), 259 deletions(-) diff --git a/main/benchmarks/all.html b/main/benchmarks/all.html index 77c030d..1777444 100644 --- a/main/benchmarks/all.html +++ b/main/benchmarks/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

\ No newline at end of file +List of all items in this crate

List of all items

\ No newline at end of file diff --git a/main/benchmarks/index.html b/main/benchmarks/index.html index 1c35218..81d58f6 100644 --- a/main/benchmarks/index.html +++ b/main/benchmarks/index.html @@ -1 +1 @@ -benchmarks - Rust

Crate benchmarks

source ·
\ No newline at end of file +benchmarks - Rust

Crate benchmarks

source ·
\ No newline at end of file diff --git a/main/help.html b/main/help.html index 5df7ccf..0a1a003 100644 --- a/main/help.html +++ b/main/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/main/refuse/all.html b/main/refuse/all.html index d5a3c45..1a09d0d 100644 --- a/main/refuse/all.html +++ b/main/refuse/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/main/refuse/architecture/index.html b/main/refuse/architecture/index.html index a5d28f7..21cd683 100644 --- a/main/refuse/architecture/index.html +++ b/main/refuse/architecture/index.html @@ -1,4 +1,4 @@ -refuse::architecture - Rust

Module refuse::architecture

source ·
Expand description

Architecture overview of the underlying design of Refuse.

+refuse::architecture - Rust

Module refuse::architecture

source ·
Expand description

Architecture overview of the underlying design of Refuse.

§Overview

Refuse is an incremental, tracing garbage collector. Incremental garbage collectors can only run when it knows no threads are currently accessing diff --git a/main/refuse/derive.MapAs.html b/main/refuse/derive.MapAs.html index 2b4bdab..8b53614 100644 --- a/main/refuse/derive.MapAs.html +++ b/main/refuse/derive.MapAs.html @@ -1,6 +1,8 @@ -MapAs in refuse - Rust

Derive Macro refuse::MapAs

#[derive(MapAs)]
+MapAs in refuse - Rust

Derive Macro refuse::MapAs

source ·
#[derive(MapAs)]
 {
     // Attributes available to this derive:
     #[map_as]
 }
-
\ No newline at end of file +
Expand description

Derives the refuse::MapAs trait for a given struct or enum.

+

This macro expects the identifier refuse to refer to the crate.

+
\ No newline at end of file diff --git a/main/refuse/derive.Trace.html b/main/refuse/derive.Trace.html index 18e54ae..97f9693 100644 --- a/main/refuse/derive.Trace.html +++ b/main/refuse/derive.Trace.html @@ -1,6 +1,8 @@ -Trace in refuse - Rust

Derive Macro refuse::Trace

#[derive(Trace)]
+Trace in refuse - Rust

Derive Macro refuse::Trace

source ·
#[derive(Trace)]
 {
     // Attributes available to this derive:
     #[trace]
 }
-
\ No newline at end of file +
Expand description

Derives the refuse::Trace trait for a given struct or enum.

+

This macro expects the identifier refuse to refer to the crate.

+
\ No newline at end of file diff --git a/main/refuse/fn.collect.html b/main/refuse/fn.collect.html index 65bfd23..d9985d4 100644 --- a/main/refuse/fn.collect.html +++ b/main/refuse/fn.collect.html @@ -1,4 +1,4 @@ -collect in refuse - Rust

Function refuse::collect

source ·
pub fn collect()
Expand description

Invokes the garbage collector.

+collect in refuse - Rust

Function refuse::collect

source ·
pub fn collect()
Expand description

Invokes the garbage collector.

§Panics

This function will panic if any CollectionGuards are held and not yielding by the current thread when invoked. If a guard is held, consider diff --git a/main/refuse/fn.try_collect.html b/main/refuse/fn.try_collect.html index 3e8fa24..8369f91 100644 --- a/main/refuse/fn.try_collect.html +++ b/main/refuse/fn.try_collect.html @@ -1,4 +1,4 @@ -try_collect in refuse - Rust

Function refuse::try_collect

source ·
pub fn try_collect() -> Result<(), WouldDeadlock>
Expand description

Invokes the garbage collector.

+try_collect in refuse - Rust

Function refuse::try_collect

source ·
pub fn try_collect() -> Result<(), WouldDeadlock>
Expand description

Invokes the garbage collector.

§Errors

If any CollectionGuards are held by this thread when this function is invoked, WouldDeadlock is returned.

diff --git a/main/refuse/index.html b/main/refuse/index.html index dce800e..be8c377 100644 --- a/main/refuse/index.html +++ b/main/refuse/index.html @@ -1,4 +1,4 @@ -refuse - Rust

Crate refuse

source ·
Expand description

§Refuse

+refuse - Rust

Crate refuse

source ·
Expand description

§Refuse

An easy-to-use, incremental, multi-threaded garbage collector for Rust.

//! A basic usage example demonstrating the garbage collector.
@@ -152,4 +152,4 @@ 

§1 thread

Modules§

  • Architecture overview of the underlying design of Refuse.

Structs§

  • A type-erased garbage collected reference.
  • A type-erased root garbage collected reference.
  • A guard that prevents garbage collection while held.
  • A pool of garbage collected values.
  • A reference to data stored in a garbage collector.
  • A root reference to a T that has been allocated in the garbage collector.
  • A tracer for the garbage collector.
  • An error indicating an operation would deadlock.
  • A marker indicating that a coordinated yield has completed.
  • A pending yield to the garbage collector.

Traits§

Functions§

Derive Macros§

\ No newline at end of file +implementation.
  • A type that can find and mark any references it has.
  • Functions§

    Derive Macros§

    • Derives the refuse::MapAs trait for a given struct or enum.
    • Derives the refuse::Trace trait for a given struct or enum.
    \ No newline at end of file diff --git a/main/refuse/struct.AnyRef.html b/main/refuse/struct.AnyRef.html index 031190e..c8320dc 100644 --- a/main/refuse/struct.AnyRef.html +++ b/main/refuse/struct.AnyRef.html @@ -1,48 +1,48 @@ -AnyRef in refuse - Rust

    Struct refuse::AnyRef

    source ·
    pub struct AnyRef { /* private fields */ }
    Expand description

    A type-erased garbage collected reference.

    -

    Implementations§

    source§

    impl AnyRef

    source

    pub const fn downcast_ref<T>(&self) -> Ref<T>
    where +AnyRef in refuse - Rust

    Struct refuse::AnyRef

    source ·
    pub struct AnyRef { /* private fields */ }
    Expand description

    A type-erased garbage collected reference.

    +

    Implementations§

    source§

    impl AnyRef

    source

    pub const fn downcast_ref<T>(&self) -> Ref<T>
    where T: Collectable,

    Returns a Ref<T>.

    This function does not do any type checking. If T is not the correct type, attempting to load the underyling value will fail.

    -
    source

    pub fn upgrade(&self, guard: &CollectionGuard<'_>) -> Option<AnyRoot>

    Returns a root for this reference, if the value has not been collected.

    -
    source

    pub fn downcast_checked<T>(&self) -> Option<Ref<T>>
    where +

    source

    pub fn upgrade(&self, guard: &CollectionGuard<'_>) -> Option<AnyRoot>

    Returns a root for this reference, if the value has not been collected.

    +
    source

    pub fn downcast_checked<T>(&self) -> Option<Ref<T>>
    where T: Collectable,

    Returns a Ref<T>, if T matches the type of this reference.

    -
    source

    pub fn downcast_root<T>(&self, guard: &CollectionGuard<'_>) -> Option<Root<T>>
    where +

    source

    pub fn downcast_root<T>(&self, guard: &CollectionGuard<'_>) -> Option<Root<T>>
    where T: Collectable,

    Returns a Root<T> if the underlying reference points to a T that has not been collected.

    -
    source

    pub fn load<'guard, T>( +

    source

    pub fn load<'guard, T>( &self, guard: &'guard CollectionGuard<'_>, ) -> Option<&'guard T>
    where T: Collectable,

    Loads a reference to the underlying data. Returns None if the data has been collected and is no longer available.

    -
    source

    pub fn load_mapped<'guard, T>( +

    source

    pub fn load_mapped<'guard, T>( &self, guard: &'guard CollectionGuard<'_>, ) -> Option<&'guard T>
    where T: ?Sized + 'static,

    Returns a reference to the result of MapAs::map_as(), if the value has not been collected and MapAs::Target is T.

    -

    Trait Implementations§

    source§

    impl Clone for AnyRef

    source§

    fn clone(&self) -> AnyRef

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AnyRef

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&AnyRef> for AnyRef

    source§

    fn from(value: &AnyRef) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<&Ref<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: &Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<&Root<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: &Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Ref<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for AnyRef

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl Clone for AnyRef

    source§

    fn clone(&self) -> AnyRef

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AnyRef

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&AnyRef> for AnyRef

    source§

    fn from(value: &AnyRef) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<&Ref<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: &Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<&Root<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: &Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Ref<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for AnyRef

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AnyRef

    source§

    fn cmp(&self, other: &AnyRef) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AnyRef

    source§

    fn cmp(&self, other: &AnyRef) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&AnyRef> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq for AnyRef

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialOrd for AnyRef

    source§

    fn partial_cmp(&self, other: &AnyRef) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,
    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&AnyRef> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq for AnyRef

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialOrd for AnyRef

    source§

    fn partial_cmp(&self, other: &AnyRef) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl Trace for AnyRef

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() -function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Copy for AnyRef

    source§

    impl Eq for AnyRef

    source§

    impl StructuralPartialEq for AnyRef

    Auto Trait Implementations§

    §

    impl Freeze for AnyRef

    §

    impl RefUnwindSafe for AnyRef

    §

    impl Send for AnyRef

    §

    impl Sync for AnyRef

    §

    impl Unpin for AnyRef

    §

    impl UnwindSafe for AnyRef

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +the >= operator. Read more

    source§

    impl Trace for AnyRef

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() +function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Copy for AnyRef

    source§

    impl Eq for AnyRef

    source§

    impl StructuralPartialEq for AnyRef

    Auto Trait Implementations§

    §

    impl Freeze for AnyRef

    §

    impl RefUnwindSafe for AnyRef

    §

    impl Send for AnyRef

    §

    impl Sync for AnyRef

    §

    impl Unpin for AnyRef

    §

    impl UnwindSafe for AnyRef

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/refuse/struct.AnyRoot.html b/main/refuse/struct.AnyRoot.html index 44e62d7..daf2995 100644 --- a/main/refuse/struct.AnyRoot.html +++ b/main/refuse/struct.AnyRoot.html @@ -1,27 +1,27 @@ -AnyRoot in refuse - Rust

    Struct refuse::AnyRoot

    source ·
    pub struct AnyRoot { /* private fields */ }
    Expand description

    A type-erased root garbage collected reference.

    -

    Implementations§

    source§

    impl AnyRoot

    source

    pub fn load<T>(&self) -> Option<&T>
    where +AnyRoot in refuse - Rust

    Struct refuse::AnyRoot

    source ·
    pub struct AnyRoot { /* private fields */ }
    Expand description

    A type-erased root garbage collected reference.

    +

    Implementations§

    source§

    impl AnyRoot

    source

    pub fn load<T>(&self) -> Option<&T>
    where T: Collectable,

    Loads a reference to the underlying data. Returns None if T is not the type of the underlying data.

    -
    source

    pub fn downcast_root<T>(&self) -> Option<Root<T>>
    where +

    source

    pub fn downcast_root<T>(&self) -> Option<Root<T>>
    where T: Collectable,

    Returns a Root<T> if the underlying reference points to a T.

    -
    source

    pub const fn downcast_ref<T>(&self) -> Ref<T>
    where +

    source

    pub const fn downcast_ref<T>(&self) -> Ref<T>
    where T: Collectable,

    Returns a Ref<T>.

    This function does not do any type checking. If T is not the correct type, attempting to load the underyling value will fail.

    -
    source

    pub fn downcast_checked<T>(&self) -> Option<Ref<T>>
    where +

    source

    pub fn downcast_checked<T>(&self) -> Option<Ref<T>>
    where T: Collectable,

    Returns a Ref<T>, if T matches the type of this reference.

    -
    source

    pub const fn as_any(&self) -> AnyRef

    Returns an untyped “weak” reference to this root.

    -

    Trait Implementations§

    source§

    impl Clone for AnyRoot

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Drop for AnyRoot

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<T> From<Root<T>> for AnyRoot
    where - T: Collectable,

    source§

    fn from(value: Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for AnyRoot

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    source

    pub const fn as_any(&self) -> AnyRef

    Returns an untyped “weak” reference to this root.

    +

    Trait Implementations§

    source§

    impl Clone for AnyRoot

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Drop for AnyRoot

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<T> From<Root<T>> for AnyRoot
    where + T: Collectable,

    source§

    fn from(value: Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for AnyRoot

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AnyRoot

    source§

    fn cmp(&self, other: &AnyRoot) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for AnyRoot

    source§

    fn cmp(&self, other: &AnyRoot) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for AnyRoot

    source§

    fn eq(&self, other: &AnyRoot) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialOrd for AnyRoot

    source§

    fn partial_cmp(&self, other: &AnyRoot) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for AnyRoot

    source§

    fn eq(&self, other: &AnyRoot) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialOrd for AnyRoot

    source§

    fn partial_cmp(&self, other: &AnyRoot) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl Eq for AnyRoot

    source§

    impl Send for AnyRoot

    source§

    impl StructuralPartialEq for AnyRoot

    source§

    impl Sync for AnyRoot

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +the >= operator. Read more

    source§

    impl Eq for AnyRoot

    source§

    impl Send for AnyRoot

    source§

    impl StructuralPartialEq for AnyRoot

    source§

    impl Sync for AnyRoot

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/refuse/struct.CollectionGuard.html b/main/refuse/struct.CollectionGuard.html index 574928b..7dcd173 100644 --- a/main/refuse/struct.CollectionGuard.html +++ b/main/refuse/struct.CollectionGuard.html @@ -1,4 +1,4 @@ -CollectionGuard in refuse - Rust

    Struct refuse::CollectionGuard

    source ·
    pub struct CollectionGuard<'a> { /* private fields */ }
    Expand description

    A guard that prevents garbage collection while held.

    +CollectionGuard in refuse - Rust

    Struct refuse::CollectionGuard

    source ·
    pub struct CollectionGuard<'a> { /* private fields */ }
    Expand description

    A guard that prevents garbage collection while held.

    To perform garbage collection, all threads must be paused to be traced. A CollectionGuard allows the ability to read garbage-collectable data by ensuring the garbage collector can’t run while it exists.

    @@ -27,7 +27,7 @@ allocations.

    It is safe to acquire multiple guards on the same thread. The collector will only be able to run when all guards have been released.

    -
    source§

    impl CollectionGuard<'_>

    source

    pub fn allocating_in<'a>(&self, pool: &'a LocalPool) -> CollectionGuard<'a>

    Returns a guard that allocates from pool.

    +
    source§

    impl CollectionGuard<'_>

    source

    pub fn allocating_in<'a>(&self, pool: &'a LocalPool) -> CollectionGuard<'a>

    Returns a guard that allocates from pool.

    source

    pub fn collect(&mut self)

    Manually invokes the garbage collector.

    This method temporarily releases this guard’s lock and waits for a garbage collection to run. If a garbage collection is already in @@ -48,17 +48,17 @@

    §Panics
    §Errors

    If another CollectionGuard is held by the current thread, WouldDeadlock will be returned and unlocked will not be invoked.

    -
    source

    pub fn yield_to_collector(&mut self)

    Yield to the garbage collector, if needed.

    +
    source

    pub fn yield_to_collector(&mut self)

    Yield to the garbage collector, if needed.

    This function will not yield unless the garbage collector is trying to acquire this thread’s lock. Because of this, it is a fairly efficient function to invoke. To minimize collection pauses, long-held guards should call this function regularly.

    If any other guards are currently held by this thread, this function does nothing.

    -
    source

    pub fn coordinated_yield( +

    source

    pub fn coordinated_yield( &mut self, yielder: impl FnOnce(Yielder<'_>) -> YieldComplete, -)

    Perform a coordinated yield to the collector, if needed.

    +) -> bool

    Perform a coordinated yield to the collector, if needed.

    This function is useful if the code yielding has held locks that the garbage collector might need during the tracing process. Instead of always unlocking the locks before calling @@ -75,18 +75,18 @@

    §Errors
    should call this function regularly.

    If any other guards are currently held by this thread, this function does nothing.

    -
    source

    pub fn while_unlocked<R>(&mut self, unlocked: impl FnOnce() -> R) -> R

    Executes unlocked while this guard is temporarily released.

    +
    source

    pub fn while_unlocked<R>(&mut self, unlocked: impl FnOnce() -> R) -> R

    Executes unlocked while this guard is temporarily released.

    §Panics

    This function will panic if any other CollectionGuards are held by the current thread when invoked.

    -
    source

    pub fn try_while_unlocked<R>( +

    source

    pub fn try_while_unlocked<R>( &mut self, unlocked: impl FnOnce() -> R, ) -> Result<R, WouldDeadlock>

    Executes unlocked while this guard is temporarily released.

    §Errors

    If another CollectionGuard is held by the current thread, WouldDeadlock will be returned and unlocked will not be invoked.

    -

    Trait Implementations§

    source§

    impl<'a> AsMut<CollectionGuard<'a>> for CollectionGuard<'a>

    source§

    fn as_mut(&mut self) -> &mut CollectionGuard<'a>

    Converts this type into a mutable reference of the (usually inferred) input type.
    source§

    impl<'a> AsRef<CollectionGuard<'a>> for CollectionGuard<'a>

    source§

    fn as_ref(&self) -> &CollectionGuard<'a>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Drop for CollectionGuard<'_>

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CollectionGuard<'a>

    §

    impl<'a> !RefUnwindSafe for CollectionGuard<'a>

    §

    impl<'a> !Send for CollectionGuard<'a>

    §

    impl<'a> !Sync for CollectionGuard<'a>

    §

    impl<'a> Unpin for CollectionGuard<'a>

    §

    impl<'a> !UnwindSafe for CollectionGuard<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl<'a> AsMut<CollectionGuard<'a>> for CollectionGuard<'a>

    source§

    fn as_mut(&mut self) -> &mut CollectionGuard<'a>

    Converts this type into a mutable reference of the (usually inferred) input type.
    source§

    impl<'a> AsRef<CollectionGuard<'a>> for CollectionGuard<'a>

    source§

    fn as_ref(&self) -> &CollectionGuard<'a>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl Drop for CollectionGuard<'_>

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CollectionGuard<'a>

    §

    impl<'a> !RefUnwindSafe for CollectionGuard<'a>

    §

    impl<'a> !Send for CollectionGuard<'a>

    §

    impl<'a> !Sync for CollectionGuard<'a>

    §

    impl<'a> Unpin for CollectionGuard<'a>

    §

    impl<'a> !UnwindSafe for CollectionGuard<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/refuse/struct.LocalPool.html b/main/refuse/struct.LocalPool.html index 635c258..0e13fe3 100644 --- a/main/refuse/struct.LocalPool.html +++ b/main/refuse/struct.LocalPool.html @@ -1,4 +1,4 @@ -LocalPool in refuse - Rust

    Struct refuse::LocalPool

    source ·
    pub struct LocalPool { /* private fields */ }
    Expand description

    A pool of garbage collected values.

    +LocalPool in refuse - Rust

    Struct refuse::LocalPool

    source ·
    pub struct LocalPool { /* private fields */ }
    Expand description

    A pool of garbage collected values.

    Values from any pool can be read using any CollectionGuard. Using independent pools for specific types of data that are meant to be shared across many threads might be beneficial. However, an individual local pool diff --git a/main/refuse/struct.Ref.html b/main/refuse/struct.Ref.html index 8423ed2..2613a43 100644 --- a/main/refuse/struct.Ref.html +++ b/main/refuse/struct.Ref.html @@ -1,4 +1,4 @@ -Ref in refuse - Rust

    Struct refuse::Ref

    source ·
    pub struct Ref<T> { /* private fields */ }
    Expand description

    A reference to data stored in a garbage collector.

    +Ref in refuse - Rust

    Struct refuse::Ref

    source ·
    pub struct Ref<T> { /* private fields */ }
    Expand description

    A reference to data stored in a garbage collector.

    Unlike a Root<T>, this type is not guaranteed to have access to its underlying data. If no Collectable reachable via all active Roots marks this allocation, it will be collected.

    @@ -36,46 +36,46 @@

    // error[E0502]: cannot borrow `guard` as mutable because it is also borrowed as immutable assert_eq!(reference, &42);

    -

    Implementations§

    source§

    impl<T> Ref<T>
    where - T: Collectable,

    source

    pub fn new<'a>(value: T, guard: impl AsRef<CollectionGuard<'a>>) -> Self

    Stores value in the garbage collector, returning a “weak” reference to +

    Implementations§

    source§

    impl<T> Ref<T>
    where + T: Collectable,

    source

    pub fn new<'a>(value: T, guard: &impl AsRef<CollectionGuard<'a>>) -> Self

    Stores value in the garbage collector, returning a “weak” reference to it.

    -
    source

    pub const fn as_any(self) -> AnyRef

    Returns this reference as an untyped reference.

    -
    source

    pub fn load<'guard>( +

    source

    pub const fn as_any(self) -> AnyRef

    Returns this reference as an untyped reference.

    +
    source

    pub fn load<'guard>( &self, guard: &'guard CollectionGuard<'_>, ) -> Option<&'guard T>

    Loads a reference to the underlying data. Returns None if the data has been collected and is no longer available.

    -
    source

    pub fn as_root(&self, guard: &CollectionGuard<'_>) -> Option<Root<T>>

    Loads a root reference to the underlying data. Returns None if the +

    source

    pub fn as_root(&self, guard: &CollectionGuard<'_>) -> Option<Root<T>>

    Loads a root reference to the underlying data. Returns None if the data has been collected and is no longer available.

    -

    Trait Implementations§

    source§

    impl<T> AsRef<Ref<T>> for Ref<T>

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> AsRef<Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> Clone for Ref<T>

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<T> Debug for Ref<T>
    where - T: Collectable + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T> From<&Ref<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: &Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Ref<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> Hash for Ref<T>

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl<T> AsRef<Ref<T>> for Ref<T>

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> AsRef<Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> Clone for Ref<T>

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<T> Debug for Ref<T>
    where + T: Collectable + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T> From<&Ref<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: &Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Ref<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: Ref<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> Hash for Ref<T>

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl<T> Ord for Ref<T>

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl<T> Ord for Ref<T>

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Root<T>> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Root<T>> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq for Ref<T>

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialOrd for Ref<T>

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Root<T>> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Root<T>> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq for Ref<T>

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialOrd for Ref<T>

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl<T> Trace for Ref<T>
    where - T: Collectable,

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() -function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl<T> Copy for Ref<T>

    source§

    impl<T> Eq for Ref<T>

    source§

    impl<T> Send for Ref<T>
    where - T: Send,

    source§

    impl<T> Sync for Ref<T>
    where +the >= operator. Read more

    source§

    impl<T> Trace for Ref<T>
    where + T: Collectable,

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() +function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl<T> Copy for Ref<T>

    source§

    impl<T> Eq for Ref<T>

    source§

    impl<T> Send for Ref<T>
    where + T: Send,

    source§

    impl<T> Sync for Ref<T>
    where T: Sync,

    Auto Trait Implementations§

    §

    impl<T> Freeze for Ref<T>

    §

    impl<T> RefUnwindSafe for Ref<T>

    §

    impl<T> Unpin for Ref<T>

    §

    impl<T> UnwindSafe for Ref<T>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where diff --git a/main/refuse/struct.Root.html b/main/refuse/struct.Root.html index 17addf3..06b8ca8 100644 --- a/main/refuse/struct.Root.html +++ b/main/refuse/struct.Root.html @@ -1,63 +1,63 @@ -Root in refuse - Rust

    Struct refuse::Root

    source ·
    pub struct Root<T>
    where +Root in refuse - Rust

    Struct refuse::Root

    source ·
    pub struct Root<T>
    where T: Collectable,
    { /* private fields */ }
    Expand description

    A root reference to a T that has been allocated in the garbage collector.

    This type behaves very similarly to Arc<T>. It implements Deref<Target = T>, and it is also cheap-to-clone, utilizing atomic reference counting to track the number of root references currently exist to the underlying value.

    While any root references exist for a given allocation, the garbage collector will not collect the allocation.

    -

    Implementations§

    source§

    impl<T> Root<T>
    where - T: Collectable,

    source

    pub fn new<'a>(value: T, guard: impl AsRef<CollectionGuard<'a>>) -> Self

    Stores value in the garbage collector, returning a root reference to +

    Implementations§

    source§

    impl<T> Root<T>
    where + T: Collectable,

    source

    pub fn new<'a>(value: T, guard: &impl AsRef<CollectionGuard<'a>>) -> Self

    Stores value in the garbage collector, returning a root reference to the data.

    -
    source

    pub fn try_from_any<'a>( +

    source

    pub fn try_from_any<'a>( root: AnyRoot, - guard: impl AsRef<CollectionGuard<'a>>, + guard: &impl AsRef<CollectionGuard<'a>>, ) -> Result<Self, AnyRoot>

    Try to convert a typeless root reference into a Root<T>.

    §Errors

    Returns Err(root) if root does not contain a T.

    -
    source

    pub fn root_count(&self) -> u64

    Returns the current number of root references to this value, including +

    source

    pub fn root_count(&self) -> u64

    Returns the current number of root references to this value, including self.

    -
    source

    pub const fn downgrade(&self) -> Ref<T>

    Returns a “weak” reference to this root.

    -
    source

    pub const fn downgrade_any(&self) -> AnyRef

    Returns an untyped “weak” reference erased to this root.

    -
    source

    pub fn to_any_root(&self) -> AnyRoot

    Returns an untyped root reference.

    -
    source

    pub fn into_any_root(self) -> AnyRoot

    Returns this root as an untyped root.

    -
    source

    pub fn ptr_eq(this: &Self, other: &Self) -> bool

    Returns true if these two references point to the same underlying +

    source

    pub const fn downgrade(&self) -> Ref<T>

    Returns a “weak” reference to this root.

    +
    source

    pub const fn downgrade_any(&self) -> AnyRef

    Returns an untyped “weak” reference erased to this root.

    +
    source

    pub fn to_any_root(&self) -> AnyRoot

    Returns an untyped root reference.

    +
    source

    pub fn into_any_root(self) -> AnyRoot

    Returns this root as an untyped root.

    +
    source

    pub fn ptr_eq(this: &Self, other: &Self) -> bool

    Returns true if these two references point to the same underlying allocation.

    -

    Trait Implementations§

    source§

    impl<T> AsRef<Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> Clone for Root<T>
    where - T: Collectable,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<T> Debug for Root<T>
    where - T: Collectable + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T> Deref for Root<T>
    where - T: Collectable,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<T> Drop for Root<T>
    where - T: Collectable,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<T> From<&Root<T>> for AnyRef
    where - T: Collectable,

    source§

    fn from(value: &Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Root<T>> for AnyRoot
    where - T: Collectable,

    source§

    fn from(value: Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> Hash for Root<T>
    where - T: Collectable + Hash,

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl<T> AsRef<Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn as_ref(&self) -> &Ref<T>

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<T> Clone for Root<T>
    where + T: Collectable,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<T> Debug for Root<T>
    where + T: Collectable + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T> Deref for Root<T>
    where + T: Collectable,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<T> Drop for Root<T>
    where + T: Collectable,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<T> From<&Root<T>> for AnyRef
    where + T: Collectable,

    source§

    fn from(value: &Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> From<Root<T>> for AnyRoot
    where + T: Collectable,

    source§

    fn from(value: Root<T>) -> Self

    Converts to this type from the input type.
    source§

    impl<T> Hash for Root<T>
    where + T: Collectable + Hash,

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl<T> Ord for Root<T>
    where - T: Collectable + Ord,

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl<T> Ord for Root<T>
    where + T: Collectable + Ord,

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Root<T>> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &&Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Ref<T>> for Root<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Root<T>> for Ref<T>
    where - T: Collectable,

    source§

    fn eq(&self, other: &Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialEq for Root<T>
    where - T: Collectable + PartialEq,

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl<T> PartialOrd for Root<T>
    where - T: Collectable + PartialOrd,

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<T> PartialEq<&AnyRef> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<&Root<T>> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &&Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<AnyRef> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &AnyRef) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Ref<T>> for Root<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &Ref<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq<Root<T>> for Ref<T>
    where + T: Collectable,

    source§

    fn eq(&self, other: &Root<T>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialEq for Root<T>
    where + T: Collectable + PartialEq,

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<T> PartialOrd for Root<T>
    where + T: Collectable + PartialOrd,

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl<T> Trace for Root<T>
    where - T: Collectable,

    source§

    const MAY_CONTAIN_REFERENCES: bool = false

    If true, this type may contain references and should have its trace() -function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, _tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl<T> Eq for Root<T>
    where - T: Collectable + Eq,

    source§

    impl<T> Send for Root<T>
    where - T: Collectable,

    source§

    impl<T> Sync for Root<T>
    where +the >= operator. Read more
    source§

    impl<T> Trace for Root<T>
    where + T: Collectable,

    source§

    const MAY_CONTAIN_REFERENCES: bool = false

    If true, this type may contain references and should have its trace() +function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, _tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl<T> Eq for Root<T>
    where + T: Collectable + Eq,

    source§

    impl<T> Send for Root<T>
    where + T: Collectable,

    source§

    impl<T> Sync for Root<T>
    where T: Collectable,

    Auto Trait Implementations§

    §

    impl<T> Freeze for Root<T>

    §

    impl<T> RefUnwindSafe for Root<T>
    where T: RefUnwindSafe,

    §

    impl<T> Unpin for Root<T>

    §

    impl<T> UnwindSafe for Root<T>
    where T: RefUnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/main/refuse/struct.Tracer.html b/main/refuse/struct.Tracer.html index 6220ed2..b376dc4 100644 --- a/main/refuse/struct.Tracer.html +++ b/main/refuse/struct.Tracer.html @@ -1,7 +1,7 @@ -Tracer in refuse - Rust

    Struct refuse::Tracer

    source ·
    pub struct Tracer<'a> { /* private fields */ }
    Expand description

    A tracer for the garbage collector.

    +Tracer in refuse - Rust

    Struct refuse::Tracer

    source ·
    pub struct Tracer<'a> { /* private fields */ }
    Expand description

    A tracer for the garbage collector.

    This type allows Collectable values to mark() any Ref<T>s they contain.

    -

    Implementations§

    source§

    impl<'a> Tracer<'a>

    source

    pub fn mark(&mut self, collectable: impl Into<AnyRef>)

    Marks collectable as being referenced, ensuring it is not garbage +

    Implementations§

    source§

    impl<'a> Tracer<'a>

    source

    pub fn mark(&mut self, collectable: impl Into<AnyRef>)

    Marks collectable as being referenced, ensuring it is not garbage collected.

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Tracer<'a>

    §

    impl<'a> RefUnwindSafe for Tracer<'a>

    §

    impl<'a> Send for Tracer<'a>

    §

    impl<'a> Sync for Tracer<'a>

    §

    impl<'a> Unpin for Tracer<'a>

    §

    impl<'a> UnwindSafe for Tracer<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where diff --git a/main/refuse/struct.WouldDeadlock.html b/main/refuse/struct.WouldDeadlock.html index 4208dbe..d7810e6 100644 --- a/main/refuse/struct.WouldDeadlock.html +++ b/main/refuse/struct.WouldDeadlock.html @@ -1,4 +1,4 @@ -WouldDeadlock in refuse - Rust

    Struct refuse::WouldDeadlock

    source ·
    pub struct WouldDeadlock;
    Expand description

    An error indicating an operation would deadlock.

    +WouldDeadlock in refuse - Rust

    Struct refuse::WouldDeadlock

    source ·
    pub struct WouldDeadlock;
    Expand description

    An error indicating an operation would deadlock.

    CollectionGuard::acquire can be called multiple times from the same thread, but some operations require that all guards for the current thread have been released before performing. This error signals when an operation @@ -15,8 +15,8 @@ drop(guard2); assert_eq!(guard1.try_collect(), Ok(()));

    -

    Trait Implementations§

    source§

    impl Clone for WouldDeadlock

    source§

    fn clone(&self) -> WouldDeadlock

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for WouldDeadlock

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for WouldDeadlock

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for WouldDeadlock

    source§

    fn eq(&self, other: &WouldDeadlock) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl Copy for WouldDeadlock

    source§

    impl Eq for WouldDeadlock

    source§

    impl StructuralPartialEq for WouldDeadlock

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Clone for WouldDeadlock

    source§

    fn clone(&self) -> WouldDeadlock

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for WouldDeadlock

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for WouldDeadlock

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for WouldDeadlock

    source§

    fn eq(&self, other: &WouldDeadlock) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl Copy for WouldDeadlock

    source§

    impl Eq for WouldDeadlock

    source§

    impl StructuralPartialEq for WouldDeadlock

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/refuse/struct.YieldComplete.html b/main/refuse/struct.YieldComplete.html index bb5051f..06f02fd 100644 --- a/main/refuse/struct.YieldComplete.html +++ b/main/refuse/struct.YieldComplete.html @@ -1,4 +1,4 @@ -YieldComplete in refuse - Rust

    Struct refuse::YieldComplete

    source ·
    pub struct YieldComplete;
    Expand description

    A marker indicating that a coordinated +YieldComplete in refuse - Rust

    Struct refuse::YieldComplete

    source ·
    pub struct YieldComplete { /* private fields */ }
    Expand description

    A marker indicating that a coordinated yield has completed.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where diff --git a/main/refuse/struct.Yielder.html b/main/refuse/struct.Yielder.html index aa99383..cba4dcf 100644 --- a/main/refuse/struct.Yielder.html +++ b/main/refuse/struct.Yielder.html @@ -1,5 +1,5 @@ -Yielder in refuse - Rust

    Struct refuse::Yielder

    source ·
    pub struct Yielder<'a>(/* private fields */);
    Expand description

    A pending yield to the garbage collector.

    -

    Implementations§

    source§

    impl Yielder<'_>

    source

    pub fn wait(self) -> YieldComplete

    Waits for the garbage collector to finish the current collection.

    +Yielder in refuse - Rust

    Struct refuse::Yielder

    source ·
    pub struct Yielder<'a>(/* private fields */);
    Expand description

    A pending yield to the garbage collector.

    +

    Implementations§

    source§

    impl Yielder<'_>

    source

    pub fn wait(self) -> YieldComplete

    Waits for the garbage collector to finish the current collection.

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Yielder<'a>

    §

    impl<'a> !RefUnwindSafe for Yielder<'a>

    §

    impl<'a> Send for Yielder<'a>

    §

    impl<'a> Sync for Yielder<'a>

    §

    impl<'a> Unpin for Yielder<'a>

    §

    impl<'a> !UnwindSafe for Yielder<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where diff --git a/main/refuse/trait.Collectable.html b/main/refuse/trait.Collectable.html index 23d994d..d9f1cb0 100644 --- a/main/refuse/trait.Collectable.html +++ b/main/refuse/trait.Collectable.html @@ -1,4 +1,4 @@ -Collectable in refuse - Rust

    Trait refuse::Collectable

    source ·
    pub trait Collectable:
    +Collectable in refuse - Rust

    Trait refuse::Collectable

    source ·
    pub trait Collectable:
         Trace
         + MapAs
         + Send
    @@ -12,5 +12,5 @@
     implemented instead of Trace.

    If no mapping functionality is desired, NoMapping can be implemented instead of MapAs.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<T> Collectable for T
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<T> Collectable for T
    where T: Trace + MapAs + Send + Sync + 'static,

    \ No newline at end of file diff --git a/main/refuse/trait.ContainsNoRefs.html b/main/refuse/trait.ContainsNoRefs.html index 8b1ae93..ac4b7e6 100644 --- a/main/refuse/trait.ContainsNoRefs.html +++ b/main/refuse/trait.ContainsNoRefs.html @@ -1,9 +1,9 @@ -ContainsNoRefs in refuse - Rust

    Trait refuse::ContainsNoRefs

    source ·
    pub trait ContainsNoRefs:
    +ContainsNoRefs in refuse - Rust

    Trait refuse::ContainsNoRefs

    source ·
    pub trait ContainsNoRefs:
         Send
         + Sync
         + 'static { }
    Expand description

    A type that can be garbage collected that cannot contain any Ref<T>s.

    Types that implement this trait automatically implement Collectable. This trait reduces the boilerplate for implementing Collectable for self-contained types.

    -

    Implementors§

    source§

    impl<T> ContainsNoRefs for T
    where +

    Implementors§

    source§

    impl<T> ContainsNoRefs for T
    where T: SimpleType,

    \ No newline at end of file diff --git a/main/refuse/trait.MapAs.html b/main/refuse/trait.MapAs.html index b5c2885..805fd13 100644 --- a/main/refuse/trait.MapAs.html +++ b/main/refuse/trait.MapAs.html @@ -1,4 +1,4 @@ -MapAs in refuse - Rust

    Trait refuse::MapAs

    source ·
    pub trait MapAs:
    +MapAs in refuse - Rust

    Trait refuse::MapAs

    source ·
    pub trait MapAs:
         Send
         + Sync
         + 'static {
    @@ -10,7 +10,7 @@
     

    This trait is used by AnyRef::load_mapped() to enable type-erased loading of a secondary type.

    If no mapping is desired, implement NoMapping instead.

    -

    Required Associated Types§

    source

    type Target: ?Sized + 'static

    The target type of the mapping.

    -

    Required Methods§

    source

    fn map_as(&self) -> &Self::Target

    Maps self to target type.

    -

    Implementors§

    source§

    impl<T> MapAs for T
    where +

    Required Associated Types§

    source

    type Target: ?Sized + 'static

    The target type of the mapping.

    +

    Required Methods§

    source

    fn map_as(&self) -> &Self::Target

    Maps self to target type.

    +

    Implementors§

    source§

    impl<T> MapAs for T
    where T: NoMapping,

    §

    type Target = ()

    \ No newline at end of file diff --git a/main/refuse/trait.NoMapping.html b/main/refuse/trait.NoMapping.html index 4d1bfad..6613fb5 100644 --- a/main/refuse/trait.NoMapping.html +++ b/main/refuse/trait.NoMapping.html @@ -1,22 +1,22 @@ -NoMapping in refuse - Rust

    Trait refuse::NoMapping

    source ·
    pub trait NoMapping:
    +NoMapping in refuse - Rust

    Trait refuse::NoMapping

    source ·
    pub trait NoMapping:
         Send
         + Sync
         + 'static { }
    Expand description

    A type that implements MapAs with an empty implementation.

    -

    Implementations on Foreign Types§

    source§

    impl<K> NoMapping for BTreeSet<K>
    where - K: Send + Sync + 'static,

    source§

    impl<K> NoMapping for Set<K>
    where - K: Sort + Send + Sync + 'static,

    source§

    impl<K, S> NoMapping for HashSet<K, S>
    where +

    Implementations on Foreign Types§

    source§

    impl<K> NoMapping for BTreeSet<K>
    where + K: Send + Sync + 'static,

    source§

    impl<K> NoMapping for Set<K>
    where + K: Sort + Send + Sync + 'static,

    source§

    impl<K, S> NoMapping for HashSet<K, S>
    where K: Send + Sync + 'static, - S: Send + Sync + 'static,

    source§

    impl<K, V> NoMapping for BTreeMap<K, V>
    where + S: Send + Sync + 'static,

    source§

    impl<K, V> NoMapping for BTreeMap<K, V>
    where K: Send + Sync + 'static, - V: Send + Sync + 'static,

    source§

    impl<K, V> NoMapping for Map<K, V>
    where + V: Send + Sync + 'static,

    source§

    impl<K, V> NoMapping for Map<K, V>
    where K: Sort + Send + Sync + 'static, - V: Send + Sync + 'static,

    source§

    impl<K, V, S> NoMapping for HashMap<K, V, S>
    where + V: Send + Sync + 'static,

    source§

    impl<K, V, S> NoMapping for HashMap<K, V, S>
    where K: Send + Sync + 'static, V: Send + Sync + 'static, - S: Send + Sync + 'static,

    source§

    impl<T> NoMapping for BinaryHeap<T>
    where - T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for LinkedList<T>
    where - T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for VecDeque<T>
    where - T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for Vec<T>
    where - T: Send + Sync + 'static,

    source§

    impl<T, const N: usize> NoMapping for [T; N]
    where - T: Send + Sync + 'static,

    Implementors§

    source§

    impl<T> NoMapping for T
    where + S: Send + Sync + 'static,

    source§

    impl<T> NoMapping for BinaryHeap<T>
    where + T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for LinkedList<T>
    where + T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for VecDeque<T>
    where + T: Send + Sync + 'static,

    source§

    impl<T> NoMapping for Vec<T>
    where + T: Send + Sync + 'static,

    source§

    impl<T, const N: usize> NoMapping for [T; N]
    where + T: Send + Sync + 'static,

    Implementors§

    source§

    impl<T> NoMapping for T
    where T: SimpleType,

    \ No newline at end of file diff --git a/main/refuse/trait.SimpleType.html b/main/refuse/trait.SimpleType.html index 067c546..18133a0 100644 --- a/main/refuse/trait.SimpleType.html +++ b/main/refuse/trait.SimpleType.html @@ -1,8 +1,8 @@ -SimpleType in refuse - Rust

    Trait refuse::SimpleType

    source ·
    pub trait SimpleType:
    +SimpleType in refuse - Rust

    Trait refuse::SimpleType

    source ·
    pub trait SimpleType:
         Send
         + Sync
         + 'static { }
    Expand description

    A type that can contain no Ref<T>s and has an empty MapAs implementation.

    Implementing this trait for a type automatically implements NoMapping and ContainsNoRefs, which makes the type Collectable.

    -

    Implementations on Foreign Types§

    source§

    impl SimpleType for i8

    source§

    impl SimpleType for i16

    source§

    impl SimpleType for i32

    source§

    impl SimpleType for i64

    source§

    impl SimpleType for i128

    source§

    impl SimpleType for isize

    source§

    impl SimpleType for u8

    source§

    impl SimpleType for u16

    source§

    impl SimpleType for u32

    source§

    impl SimpleType for u64

    source§

    impl SimpleType for u128

    source§

    impl SimpleType for usize

    source§

    impl SimpleType for String

    source§

    impl SimpleType for AtomicI8

    source§

    impl SimpleType for AtomicI16

    source§

    impl SimpleType for AtomicI32

    source§

    impl SimpleType for AtomicI64

    source§

    impl SimpleType for AtomicIsize

    source§

    impl SimpleType for AtomicU8

    source§

    impl SimpleType for AtomicU16

    source§

    impl SimpleType for AtomicU32

    source§

    impl SimpleType for AtomicU64

    source§

    impl SimpleType for AtomicUsize

    source§

    impl SimpleType for NonZeroI8

    source§

    impl SimpleType for NonZeroI16

    source§

    impl SimpleType for NonZeroI32

    source§

    impl SimpleType for NonZeroI64

    source§

    impl SimpleType for NonZeroI128

    source§

    impl SimpleType for NonZeroIsize

    source§

    impl SimpleType for NonZeroU8

    source§

    impl SimpleType for NonZeroU16

    source§

    impl SimpleType for NonZeroU32

    source§

    impl SimpleType for NonZeroU64

    source§

    impl SimpleType for NonZeroU128

    source§

    impl SimpleType for NonZeroUsize

    Implementors§

    \ No newline at end of file +

    Implementations on Foreign Types§

    source§

    impl SimpleType for i8

    source§

    impl SimpleType for i16

    source§

    impl SimpleType for i32

    source§

    impl SimpleType for i64

    source§

    impl SimpleType for i128

    source§

    impl SimpleType for isize

    source§

    impl SimpleType for u8

    source§

    impl SimpleType for u16

    source§

    impl SimpleType for u32

    source§

    impl SimpleType for u64

    source§

    impl SimpleType for u128

    source§

    impl SimpleType for usize

    source§

    impl SimpleType for String

    source§

    impl SimpleType for AtomicI8

    source§

    impl SimpleType for AtomicI16

    source§

    impl SimpleType for AtomicI32

    source§

    impl SimpleType for AtomicI64

    source§

    impl SimpleType for AtomicIsize

    source§

    impl SimpleType for AtomicU8

    source§

    impl SimpleType for AtomicU16

    source§

    impl SimpleType for AtomicU32

    source§

    impl SimpleType for AtomicU64

    source§

    impl SimpleType for AtomicUsize

    source§

    impl SimpleType for NonZeroI8

    source§

    impl SimpleType for NonZeroI16

    source§

    impl SimpleType for NonZeroI32

    source§

    impl SimpleType for NonZeroI64

    source§

    impl SimpleType for NonZeroI128

    source§

    impl SimpleType for NonZeroIsize

    source§

    impl SimpleType for NonZeroU8

    source§

    impl SimpleType for NonZeroU16

    source§

    impl SimpleType for NonZeroU32

    source§

    impl SimpleType for NonZeroU64

    source§

    impl SimpleType for NonZeroU128

    source§

    impl SimpleType for NonZeroUsize

    Implementors§

    \ No newline at end of file diff --git a/main/refuse/trait.Trace.html b/main/refuse/trait.Trace.html index 6c513ba..7540ee7 100644 --- a/main/refuse/trait.Trace.html +++ b/main/refuse/trait.Trace.html @@ -1,4 +1,4 @@ -Trace in refuse - Rust

    Trait refuse::Trace

    source ·
    pub trait Trace:
    +Trace in refuse - Rust

    Trait refuse::Trace

    source ·
    pub trait Trace:
         Send
         + Sync
         + 'static {
    @@ -7,30 +7,30 @@
         // Required method
         fn trace(&self, tracer: &mut Tracer<'_>);
     }
    Expand description

    A type that can find and mark any references it has.

    -

    Required Associated Constants§

    source

    const MAY_CONTAIN_REFERENCES: bool

    If true, this type may contain references and should have its trace() +

    Required Associated Constants§

    source

    const MAY_CONTAIN_REFERENCES: bool

    If true, this type may contain references and should have its trace() function invoked during the collector’s “mark” phase.

    -

    Required Methods§

    source

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references.

    +

    Required Methods§

    source

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references.

    This function should invoke Tracer::mark() for each Ref<T> it contains. Failing to do so will allow the garbage collector to free the data, preventing the ability to load() the data in the future.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl<K> Trace for BTreeSet<K>
    where - K: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K> Trace for Set<K>
    where - K: Trace + Sort,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, S> Trace for HashSet<K, S>
    where +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl<K> Trace for BTreeSet<K>
    where + K: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K> Trace for Set<K>
    where + K: Trace + Sort,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, S> Trace for HashSet<K, S>
    where K: Trace, - S: Send + Sync + 'static,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V> Trace for BTreeMap<K, V>
    where + S: Send + Sync + 'static,

    source§

    const MAY_CONTAIN_REFERENCES: bool = K::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V> Trace for BTreeMap<K, V>
    where K: Trace, - V: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V> Trace for Map<K, V>
    where + V: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V> Trace for Map<K, V>
    where K: Trace + Sort, - V: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V, S> Trace for HashMap<K, V, S>
    where + V: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<K, V, S> Trace for HashMap<K, V, S>
    where K: Trace, V: Trace, - S: Send + Sync + 'static,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for BinaryHeap<T>
    where - T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for LinkedList<T>
    where - T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for VecDeque<T>
    where - T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for Vec<T>
    where - T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T, const N: usize> Trace for [T; N]
    where - T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Implementors§

    \ No newline at end of file + S: Send + Sync + 'static,

    source§

    const MAY_CONTAIN_REFERENCES: bool = _

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for BinaryHeap<T>
    where + T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for LinkedList<T>
    where + T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for VecDeque<T>
    where + T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T> Trace for Vec<T>
    where + T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    source§

    impl<T, const N: usize> Trace for [T; N]
    where + T: Trace,

    source§

    const MAY_CONTAIN_REFERENCES: bool = T::MAY_CONTAIN_REFERENCES

    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Implementors§

    \ No newline at end of file diff --git a/main/refuse_macros/all.html b/main/refuse_macros/all.html index 0e6f5d5..fab41e4 100644 --- a/main/refuse_macros/all.html +++ b/main/refuse_macros/all.html @@ -1 +1 @@ -List of all items in this crate

    List of all items

    Derive Macros

    \ No newline at end of file +List of all items in this crate

    List of all items

    Derive Macros

    \ No newline at end of file diff --git a/main/refuse_macros/derive.MapAs.html b/main/refuse_macros/derive.MapAs.html index a022de0..4155746 100644 --- a/main/refuse_macros/derive.MapAs.html +++ b/main/refuse_macros/derive.MapAs.html @@ -1,6 +1,8 @@ -MapAs in refuse_macros - Rust

    Derive Macro refuse_macros::MapAs

    source ·
    #[derive(MapAs)]
    +MapAs in refuse_macros - Rust

    Derive Macro refuse_macros::MapAs

    source ·
    #[derive(MapAs)]
     {
         // Attributes available to this derive:
         #[map_as]
     }
    -
    \ No newline at end of file +
    Expand description

    Derives the refuse::MapAs trait for a given struct or enum.

    +

    This macro expects the identifier refuse to refer to the crate.

    +
    \ No newline at end of file diff --git a/main/refuse_macros/derive.Trace.html b/main/refuse_macros/derive.Trace.html index 837e74b..aa122ad 100644 --- a/main/refuse_macros/derive.Trace.html +++ b/main/refuse_macros/derive.Trace.html @@ -1,6 +1,8 @@ -Trace in refuse_macros - Rust

    Derive Macro refuse_macros::Trace

    source ·
    #[derive(Trace)]
    +Trace in refuse_macros - Rust

    Derive Macro refuse_macros::Trace

    source ·
    #[derive(Trace)]
     {
         // Attributes available to this derive:
         #[trace]
     }
    -
    \ No newline at end of file +
    Expand description

    Derives the refuse::Trace trait for a given struct or enum.

    +

    This macro expects the identifier refuse to refer to the crate.

    +
    \ No newline at end of file diff --git a/main/refuse_macros/index.html b/main/refuse_macros/index.html index e0fb823..4d79d56 100644 --- a/main/refuse_macros/index.html +++ b/main/refuse_macros/index.html @@ -1,3 +1,3 @@ -refuse_macros - Rust

    Crate refuse_macros

    source ·
    Expand description

    Macros for the Refuse garbage +refuse_macros - Rust

    Crate refuse_macros

    source ·
    Expand description

    Macros for the Refuse garbage collector.

    -

    Derive Macros§

    \ No newline at end of file +

    Derive Macros§

    • Derives the refuse::MapAs trait for a given struct or enum.
    • Derives the refuse::Trace trait for a given struct or enum.
    \ No newline at end of file diff --git a/main/refuse_pool/all.html b/main/refuse_pool/all.html index d83eeac..fa7c71f 100644 --- a/main/refuse_pool/all.html +++ b/main/refuse_pool/all.html @@ -1 +1 @@ -List of all items in this crate

    List of all items

    Structs

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    \ No newline at end of file diff --git a/main/refuse_pool/index.html b/main/refuse_pool/index.html index f843d84..09e0632 100644 --- a/main/refuse_pool/index.html +++ b/main/refuse_pool/index.html @@ -1,4 +1,4 @@ -refuse_pool - Rust

    Crate refuse_pool

    source ·
    Expand description

    Garbage-collected “interned” strings.

    +refuse_pool - Rust

    Crate refuse_pool

    source ·
    Expand description

    Garbage-collected “interned” strings.

    Interning is a process of making many equal things share the same underlying resource. This crate introduces two types that are powered by the Refuse garbage collector:

    diff --git a/main/refuse_pool/struct.RefString.html b/main/refuse_pool/struct.RefString.html index 4f3a9b8..395e9db 100644 --- a/main/refuse_pool/struct.RefString.html +++ b/main/refuse_pool/struct.RefString.html @@ -1,29 +1,29 @@ -RefString in refuse_pool - Rust

    Struct refuse_pool::RefString

    source ·
    pub struct RefString(/* private fields */);
    Expand description

    A weak reference to a garbage collected, interned string.

    -

    Implementations§

    source§

    impl RefString

    source

    pub fn new<'a>(s: impl Into<Cow<'a, str>>) -> Self

    Returns a reference to a garbage collected string that contains s.

    +RefString in refuse_pool - Rust

    Struct refuse_pool::RefString

    source ·
    pub struct RefString(/* private fields */);
    Expand description

    A weak reference to a garbage collected, interned string.

    +

    Implementations§

    source§

    impl RefString

    source

    pub fn new<'a>(s: impl Into<Cow<'a, str>>) -> Self

    Returns a reference to a garbage collected string that contains s.

    If another RootString or RefString exists already with the same contents as s, it will be returned and s will be dropped.

    -
    source

    pub fn from_any(any: AnyRef) -> Option<Self>

    Upgrades a typeless reference to a pooled string reference.

    +
    source

    pub fn from_any(any: AnyRef) -> Option<Self>

    Upgrades a typeless reference to a pooled string reference.

    Returns None if any is not a pooled string.

    -
    source

    pub fn load<'guard>( +

    source

    pub fn load<'guard>( &self, - guard: &'guard CollectionGuard<'_>, + guard: &'guard CollectionGuard<'_>, ) -> Option<&'guard str>

    Loads a reference to the underlying string, if the string hasn’t been freed.

    -
    source

    pub fn as_root(&self, guard: &CollectionGuard<'_>) -> Option<RootString>

    Loads this string as a root, if the string hasn’t been freed.

    -
    source

    pub fn as_any(&self) -> AnyRef

    Returns a typeless reference to this string.

    -

    Trait Implementations§

    source§

    impl Clone for RefString

    source§

    fn clone(&self) -> RefString

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RefString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&String> for RefString

    source§

    fn from(value: &String) -> Self

    Converts to this type from the input type.
    source§

    impl From<&str> for RefString

    source§

    fn from(value: &str) -> Self

    Converts to this type from the input type.
    source§

    impl From<String> for RefString

    source§

    fn from(value: String) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for RefString

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    source

    pub fn as_root(&self, guard: &CollectionGuard<'_>) -> Option<RootString>

    Loads this string as a root, if the string hasn’t been freed.

    +
    source

    pub fn as_any(&self) -> AnyRef

    Returns a typeless reference to this string.

    +

    Trait Implementations§

    source§

    impl Clone for RefString

    source§

    fn clone(&self) -> RefString

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RefString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<&String> for RefString

    source§

    fn from(value: &String) -> Self

    Converts to this type from the input type.
    source§

    impl From<&str> for RefString

    source§

    fn from(value: &str) -> Self

    Converts to this type from the input type.
    source§

    impl From<String> for RefString

    source§

    fn from(value: String) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for RefString

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for RefString

    source§

    fn cmp(&self, other: &RefString) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for RefString

    source§

    fn cmp(&self, other: &RefString) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq<RefString> for RootString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<RootString> for RefString

    source§

    fn eq(&self, other: &RootString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq for RefString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialOrd for RefString

    source§

    fn partial_cmp(&self, other: &RefString) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,
    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq<RefString> for RootString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<RootString> for RefString

    source§

    fn eq(&self, other: &RootString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq for RefString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialOrd for RefString

    source§

    fn partial_cmp(&self, other: &RefString) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl Trace for RefString

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() -function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Copy for RefString

    source§

    impl Eq for RefString

    source§

    impl StructuralPartialEq for RefString

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +the >= operator. Read more

    source§

    impl Trace for RefString

    source§

    const MAY_CONTAIN_REFERENCES: bool = true

    If true, this type may contain references and should have its trace() +function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Copy for RefString

    source§

    impl Eq for RefString

    source§

    impl StructuralPartialEq for RefString

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/refuse_pool/struct.RootString.html b/main/refuse_pool/struct.RootString.html index 0a3bf1e..89a2c7b 100644 --- a/main/refuse_pool/struct.RootString.html +++ b/main/refuse_pool/struct.RootString.html @@ -1,20 +1,20 @@ -RootString in refuse_pool - Rust

    Struct refuse_pool::RootString

    source ·
    pub struct RootString(/* private fields */);
    Expand description

    A “root” reference to a garbage collected, interned string.

    +RootString in refuse_pool - Rust

    Struct refuse_pool::RootString

    source ·
    pub struct RootString(/* private fields */);
    Expand description

    A “root” reference to a garbage collected, interned string.

    This type is cheap to check equality because it ensures each unique string is allocated only once, and references are reused automatically.

    -

    Implementations§

    source§

    impl RootString

    source

    pub fn new<'a>( +

    Implementations§

    source§

    impl RootString

    source

    pub fn new<'a>( s: impl Into<Cow<'a, str>>, - guard: impl AsRef<CollectionGuard<'a>>, + guard: &impl AsRef<CollectionGuard<'a>>, ) -> Self

    Returns a root reference to a garbage collected string that contains s.

    If another RootString or RefString exists already with the same contents as s, it will be returned and s will be dropped.

    -
    source

    pub const fn downgrade(&self) -> RefString

    Returns a reference to this root string.

    -
    source

    pub const fn downgrade_any(&self) -> AnyRef

    Returns a typeless reference to this string.

    -
    source

    pub fn root_count(&self) -> u64

    Returns the number of root references to this string, self included.

    -
    source

    pub fn try_from_any<'a>( - root: AnyRoot, - guard: impl AsRef<CollectionGuard<'a>>, -) -> Result<Self, AnyRoot>

    Try to convert a typeless root reference to a root string reference.

    +
    source

    pub const fn downgrade(&self) -> RefString

    Returns a reference to this root string.

    +
    source

    pub const fn downgrade_any(&self) -> AnyRef

    Returns a typeless reference to this string.

    +
    source

    pub fn root_count(&self) -> u64

    Returns the number of root references to this string, self included.

    +
    source

    pub fn try_from_any<'a>( + root: AnyRoot, + guard: &impl AsRef<CollectionGuard<'a>>, +) -> Result<Self, AnyRoot>

    Try to convert a typeless root reference to a root string reference.

    §Errors

    Returns Err(root) if root does not contain a pooled string.

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    @@ -1257,23 +1257,23 @@
    §Examples
    let s = "Grüße, Jürgen ❤";
     
     assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
    -

    Trait Implementations§

    source§

    impl Clone for RootString

    source§

    fn clone(&self) -> RootString

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RootString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deref for RootString

    §

    type Target = str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl Display for RootString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Drop for RootString

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl From<&String> for RootString

    source§

    fn from(value: &String) -> Self

    Converts to this type from the input type.
    source§

    impl From<&str> for RootString

    source§

    fn from(value: &str) -> Self

    Converts to this type from the input type.
    source§

    impl From<String> for RootString

    source§

    fn from(value: String) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for RootString

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +

    Trait Implementations§

    source§

    impl Clone for RootString

    source§

    fn clone(&self) -> RootString

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for RootString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deref for RootString

    §

    type Target = str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl Display for RootString

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Drop for RootString

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl From<&String> for RootString

    source§

    fn from(value: &String) -> Self

    Converts to this type from the input type.
    source§

    impl From<&str> for RootString

    source§

    fn from(value: &str) -> Self

    Converts to this type from the input type.
    source§

    impl From<String> for RootString

    source§

    fn from(value: String) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for RootString

    source§

    fn hash<H: Hasher>(&self, state: &mut H)

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, - Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for RootString

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for RootString

    source§

    fn cmp(&self, other: &Self) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq<&String> for RootString

    source§

    fn eq(&self, other: &&String) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<&str> for RootString

    source§

    fn eq(&self, other: &&str) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<RefString> for RootString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<RootString> for RefString

    source§

    fn eq(&self, other: &RootString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<String> for RootString

    source§

    fn eq(&self, other: &String) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq<str> for RootString

    source§

    fn eq(&self, other: &str) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialEq for RootString

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl PartialOrd for RootString

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq<&String> for RootString

    source§

    fn eq(&self, other: &&String) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<&str> for RootString

    source§

    fn eq(&self, other: &&str) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<RefString> for RootString

    source§

    fn eq(&self, other: &RefString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<RootString> for RefString

    source§

    fn eq(&self, other: &RootString) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<String> for RootString

    source§

    fn eq(&self, other: &String) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq<str> for RootString

    source§

    fn eq(&self, other: &str) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialEq for RootString

    source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl PartialOrd for RootString

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
    source§

    impl Trace for RootString

    source§

    const MAY_CONTAIN_REFERENCES: bool = false

    If true, this type may contain references and should have its trace() -function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Eq for RootString

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +the >= operator. Read more

    source§

    impl Trace for RootString

    source§

    const MAY_CONTAIN_REFERENCES: bool = false

    If true, this type may contain references and should have its trace() +function invoked during the collector’s “mark” phase.
    source§

    fn trace(&self, tracer: &mut Tracer<'_>)

    Traces all refrences that this value references. Read more
    source§

    impl Eq for RootString

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<A> Cast for A

    §

    fn cast<To>(self) -> To
    where diff --git a/main/search-index.js b/main/search-index.js index 4e9130f..aacec94 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,8 +1,8 @@ var searchIndex = new Map(JSON.parse('[\ ["benchmarks",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ -["refuse",{"t":"FFKFKFTKYKFFKRKYFFFFNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AnyRef","AnyRoot","Collectable","CollectionGuard","ContainsNoRefs","LocalPool","MAY_CONTAIN_REFERENCES","MapAs","MapAs","NoMapping","Ref","Root","SimpleType","Target","Trace","Trace","Tracer","WouldDeadlock","YieldComplete","Yielder","acquire","allocating_in","architecture","as_any","as_any","as_mut","as_ref","as_ref","as_ref","as_root","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","cmp","cmp","collect","collect","compare","compare","compare","compare","coordinated_yield","default","deref","downcast_checked","downcast_checked","downcast_ref","downcast_ref","downcast_root","downcast_root","downgrade","downgrade_any","drop","drop","drop","drop","enter","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into_any_root","load","load","load","load_mapped","map_as","mark","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","ptr_eq","root_count","to_any_root","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trace","trace","trace","trace","try_acquire","try_collect","try_collect","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_any","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_while_unlocked","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upgrade","wait","while_unlocked","yield_to_collector"],"q":[[0,"refuse"],[236,"core::option"],[237,"intentional::cast"],[238,"core::cmp"],[239,"core::ops::function"],[240,"core::fmt"],[241,"core::hash"],[242,"core::marker"],[243,"core::convert"],[244,"alloc::string"],[245,"core::result"],[246,"core::any"],[247,"refuse_macros"]],"i":[0,0,0,0,0,0,36,0,0,0,0,0,0,29,0,0,0,0,0,0,1,1,0,4,7,1,1,9,4,4,3,1,16,18,30,9,4,12,7,5,3,1,16,18,30,9,4,12,7,5,3,1,16,18,30,9,4,12,7,5,3,1,16,18,30,9,4,12,7,5,9,4,12,7,5,9,4,12,7,5,9,4,4,12,12,7,5,5,9,4,7,5,0,1,9,4,7,5,1,3,9,7,5,7,5,7,5,9,9,3,1,9,7,3,9,9,9,9,9,4,4,4,4,4,12,7,5,9,4,12,12,5,3,1,16,18,30,9,4,12,7,7,5,5,5,5,5,3,1,16,18,30,9,4,12,7,5,9,4,7,5,3,1,16,18,30,9,4,12,7,5,9,4,7,5,5,29,30,9,4,9,4,7,5,9,9,9,9,4,12,7,5,12,36,9,4,5,1,0,1,3,1,16,18,30,9,4,12,7,5,9,3,1,16,18,30,9,4,12,7,5,1,3,1,16,18,30,9,4,12,7,5,5,16,1,1],"f":"````````````````````{{}b}{{{d{b}}{d{f}}}b}`{{{h{c}}}jl}{{{d{n}}}j}{{{d{A`b}}}{{d{A`b}}}}{{{d{b}}}{{d{b}}}}{{{d{{Ab{c}}}}}{{d{{h{c}}}}}l}{{{d{{h{c}}}}}{{d{{h{c}}}}}{}}{{{d{{h{c}}}}{d{b}}}{{Ad{{Ab{c}}}}}l}{d{{d{c}}}{}}000000000{{{d{A`}}}{{d{A`c}}}{}}000000000{{}e{}{{Af{c}}}}000000000{{}c{}}000000000{{{d{{Ab{c}}}}}{{Ab{c}}}l}{{{d{{h{c}}}}}{{h{c}}}{}}{{{d{Ah}}}Ah}{{{d{n}}}n}{{{d{j}}}j}{{d{d{A`c}}}Aj{}}0000{dAj}0000000{{{d{{Ab{c}}}}{d{{Ab{c}}}}}Al{lAn}}{{{d{{h{c}}}}{d{{h{c}}}}}Al{}}{{{d{n}}{d{n}}}Al}{{{d{j}}{d{j}}}Al}{{}Aj}{{{d{A`b}}}Aj}{{d{d{c}}}Al{}}000{{{d{A`b}}c}Aj{{Bf{B`}{{Bb{Bd}}}}}}{{}f}{{{d{{Ab{c}}}}}{{d{e}}}l{}}{{{d{n}}}{{Ad{{h{c}}}}}l}{{{d{j}}}{{Ad{{h{c}}}}}l}{{{d{n}}}{{h{c}}}l}{{{d{j}}}{{h{c}}}l}{{{d{n}}}{{Ad{{Ab{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{Ab{c}}}}}l}{{{d{{Ab{c}}}}}{{h{c}}}l}{{{d{{Ab{c}}}}}jl}{{{d{A`f}}}Aj}={{{d{A`{Ab{c}}}}}Ajl}{{{d{A`n}}}Aj}{{{d{f}}}b}{{{d{{Ab{c}}}}{d{{d{j}}}}}Bhl}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}Bh{lBj}}{{{d{{Ab{c}}}}{d{{h{c}}}}}Bhl}{{{d{{Ab{c}}}}{d{{d{{h{c}}}}}}}Bhl}{{{d{{Ab{c}}}}{d{j}}}Bhl}{{{d{{h{c}}}}{d{{d{{Ab{c}}}}}}}Bhl}{{{d{{h{c}}}}{d{j}}}Bhl}{{{d{{h{c}}}}{d{{d{j}}}}}Bhl}{{{d{{h{c}}}}{d{{Ab{c}}}}}Bhl}{{{d{{h{c}}}}{d{{h{c}}}}}Bh{}}{{{d{Ah}}{d{Ah}}}Bh}{{{d{n}}{d{n}}}Bh}{{{d{j}}{d{j}}}Bh}{{{d{{Ab{c}}}}{d{A`Bl}}}Bn{lC`}}{{{d{{h{c}}}}{d{A`Bl}}}Bn{lC`}}{{{d{Ah}}{d{A`Bl}}}Bn}0{{{d{j}}{d{A`Bl}}}Bn}{cc{}}0000000{{{Ab{c}}}nl}11{{{d{{Ab{c}}}}}jl}{{{h{c}}}jl}{{{d{{h{c}}}}}jl}{{{d{j}}}j}5555555555{{{d{{Ab{c}}}}{d{A`e}}}Aj{lCb}Cd}{{{d{{h{c}}}}{d{A`e}}}Aj{}Cd}{{{d{n}}{d{A`c}}}AjCd}{{{d{j}}{d{A`c}}}AjCd}{{}c{}}0000000009{{{d{{h{c}}}}{d{b}}}{{Ad{{d{c}}}}}l}{{{d{n}}}{{Ad{{d{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{d{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{d{c}}}}}Cf}{{{d{{Cj{}{{Ch{c}}}}}}}{{d{c}}}Cf}{{{d{A`Cl}}c}Aj{{Cn{j}}}}{{ce}{{Ab{c}}}l{{D`{b}}}}{{ce}{{h{c}}}l{{D`{b}}}}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}{{Ad{Al}}}{lDb}}{{{d{{h{c}}}}{d{{h{c}}}}}{{Ad{Al}}}{}}{{{d{n}}{d{n}}}{{Ad{Al}}}}{{{d{j}}{d{j}}}{{Ad{Al}}}}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}Bhl}{{{d{{Ab{c}}}}}Ddl}{{{d{{Ab{c}}}}}nl}{dc{}}0000{dDf}{{{d{Dh}}{d{A`Cl}}}Aj}{{{d{{Ab{c}}}}{d{A`Cl}}}Ajl}{{{d{{h{c}}}}{d{A`Cl}}}Ajl}{{{d{j}}{d{A`Cl}}}Aj}{{}{{Ad{b}}}}{{}{{Dj{AjAh}}}}{{{d{A`b}}}{{Dj{AjAh}}}}{c{{Dj{e}}}{}{}}000000000{{nc}{{Dj{{Ab{e}}n}}}{{D`{b}}}l}{{}{{Dj{c}}}{}}000000000{{{d{A`b}}e}{{Dj{cAh}}}{}{{Bf{}{{Bb{c}}}}}}{dDl}000000000{{{d{j}}{d{b}}}{{Ad{n}}}}{B`Bd}{{{d{A`b}}e}c{}{{Bf{}{{Bb{c}}}}}}{{{d{A`b}}}Aj}","D":"In","p":[[5,"CollectionGuard",0],[1,"reference"],[5,"LocalPool",0],[5,"Ref",0],[5,"AnyRef",0],[10,"Collectable",0],[5,"AnyRoot",0],[0,"mut"],[5,"Root",0],[6,"Option",236],[10,"CastFrom",237],[5,"WouldDeadlock",0],[1,"unit"],[6,"Ordering",238],[10,"Ord",238],[5,"Yielder",0],[17,"Output"],[5,"YieldComplete",0],[10,"FnOnce",239],[1,"bool"],[10,"PartialEq",238],[5,"Formatter",240],[8,"Result",240],[10,"Debug",240],[10,"Hash",241],[10,"Hasher",241],[10,"Sized",242],[17,"Target"],[10,"MapAs",0],[5,"Tracer",0],[10,"Into",243],[10,"AsRef",243],[10,"PartialOrd",238],[1,"u64"],[5,"String",244],[10,"Trace",0],[6,"Result",245],[5,"TypeId",246]],"r":[[8,247],[15,247]],"b":[[114,"impl-PartialEq%3C%26AnyRef%3E-for-Root%3CT%3E"],[115,"impl-PartialEq-for-Root%3CT%3E"],[116,"impl-PartialEq%3CRef%3CT%3E%3E-for-Root%3CT%3E"],[117,"impl-PartialEq%3C%26Ref%3CT%3E%3E-for-Root%3CT%3E"],[118,"impl-PartialEq%3CAnyRef%3E-for-Root%3CT%3E"],[119,"impl-PartialEq%3C%26Root%3CT%3E%3E-for-Ref%3CT%3E"],[120,"impl-PartialEq%3CAnyRef%3E-for-Ref%3CT%3E"],[121,"impl-PartialEq%3C%26AnyRef%3E-for-Ref%3CT%3E"],[122,"impl-PartialEq%3CRoot%3CT%3E%3E-for-Ref%3CT%3E"],[123,"impl-PartialEq-for-Ref%3CT%3E"],[129,"impl-Display-for-WouldDeadlock"],[130,"impl-Debug-for-WouldDeadlock"],[143,"impl-From%3C%26Root%3CT%3E%3E-for-AnyRef"],[144,"impl-From%3CRef%3CT%3E%3E-for-AnyRef"],[145,"impl-From%3C%26Ref%3CT%3E%3E-for-AnyRef"],[146,"impl-From%3C%26AnyRef%3E-for-AnyRef"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJ0AEAAJAAAAEAAAABoAAwAfAD0AXwADAGQAAQBuAAMAcwARAI0AAACQABEAtQADALwABQDDAAIAyQAJANQACQDfAAkA"}],\ -["refuse_macros",{"t":"YY","n":["MapAs","Trace"],"q":[[0,"refuse_macros"]],"i":[0,0],"f":"``","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAEAEAAAAAEAAgA="}],\ -["refuse_pool",{"t":"FFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["RefString","RootString","as_any","as_root","borrow","borrow","borrow_mut","borrow_mut","cast","cast","cast_into","cast_into","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","deref","downgrade","downgrade_any","drop","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_any","from_cast","from_cast","hash","hash","into","into","load","new","new","partial_cmp","partial_cmp","root_count","to_owned","to_owned","to_string","trace","trace","try_from","try_from","try_from_any","try_into","try_into","type_id","type_id"],"q":[[0,"refuse_pool"],[75,"refuse"],[76,"core::option"],[77,"intentional::cast"],[78,"core::cmp"],[79,"alloc::string"],[80,"core::fmt"],[81,"core::hash"],[82,"alloc::borrow"],[83,"core::convert"],[84,"core::result"],[85,"core::any"]],"i":[0,0,1,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,1,5,1,5,1,5,5,5,5,5,5,5,5,5,5,1,1,5,5,1,1,5,5,1,5,5,5,5,1,1,1,1,1,5,1,5,1,5,1,1,5,1,5,1,5,5,1,5,5,1,5,1,5,5,1,5,1],"f":"``{{{d{b}}}f}{{{d{b}}{d{h}}}{{l{j}}}}{d{{d{c}}}{}}0{{{d{n}}}{{d{nc}}}{}}0{{}e{}{{A`{c}}}}0{{}c{}}0{{{d{j}}}j}{{{d{b}}}b}{{d{d{nc}}}Ab{}}0{dAb}00{{{d{j}}{d{j}}}Ad}{{{d{b}}{d{b}}}Ad}{{d{d{c}}}Ad{}}0{{{d{j}}}{{d{c}}}{}}{{{d{j}}}b}{{{d{j}}}f}{{{d{nj}}}Ab}{{{d{j}}{d{j}}}Af}{{{d{j}}{d{Ah}}}Af}{{{d{j}}{d{Aj}}}Af}{{{d{j}}{d{b}}}Af}{{{d{j}}{d{{d{Aj}}}}}Af}{{{d{j}}{d{{d{Ah}}}}}Af}{{{d{b}}{d{b}}}Af}{{{d{b}}{d{j}}}Af}{{d{d{c}}}Af{}}000{{{d{j}}{d{nAl}}}An}0{{{d{b}}{d{nAl}}}An}{{{d{Aj}}}j}{cc{}}{Ajj}{{{d{Ah}}}j}2{{{d{Ah}}}b}{{{d{Aj}}}b}{Ajb}{f{{l{b}}}}66{{{d{j}}{d{nc}}}AbB`}{{{d{b}}{d{nc}}}AbB`}{{}c{}}0{{{d{b}}{d{h}}}{{l{{d{Ah}}}}}}{{ce}j{{Bd{{Bb{Ah}}}}}{{Bf{h}}}}{cb{{Bd{{Bb{Ah}}}}}}{{{d{j}}{d{j}}}{{l{Ad}}}}{{{d{b}}{d{b}}}{{l{Ad}}}}{{{d{j}}}Bh}{dc{}}0{dAj}{{{d{j}}{d{nBj}}}Ab}{{{d{b}}{d{nBj}}}Ab}{c{{Bl{e}}}{}{}}0{{Bnc}{{Bl{jBn}}}{{Bf{h}}}}{{}{{Bl{c}}}{}}0{dC`}0","D":"Bb","p":[[5,"RefString",0],[1,"reference"],[5,"AnyRef",75],[5,"CollectionGuard",75],[5,"RootString",0],[6,"Option",76],[0,"mut"],[10,"CastFrom",77],[1,"unit"],[6,"Ordering",78],[1,"bool"],[1,"str"],[5,"String",79],[5,"Formatter",80],[8,"Result",80],[10,"Hasher",81],[6,"Cow",82],[10,"Into",83],[10,"AsRef",83],[1,"u64"],[5,"Tracer",75],[6,"Result",84],[5,"AnyRoot",75],[5,"TypeId",85]],"r":[],"b":[[27,"impl-PartialEq-for-RootString"],[28,"impl-PartialEq%3Cstr%3E-for-RootString"],[29,"impl-PartialEq%3CString%3E-for-RootString"],[30,"impl-PartialEq%3CRefString%3E-for-RootString"],[31,"impl-PartialEq%3C%26String%3E-for-RootString"],[32,"impl-PartialEq%3C%26str%3E-for-RootString"],[33,"impl-PartialEq-for-RefString"],[34,"impl-PartialEq%3CRootString%3E-for-RefString"],[39,"impl-Debug-for-RootString"],[40,"impl-Display-for-RootString"],[42,"impl-From%3C%26String%3E-for-RootString"],[44,"impl-From%3CString%3E-for-RootString"],[45,"impl-From%3C%26str%3E-for-RootString"],[47,"impl-From%3C%26str%3E-for-RefString"],[48,"impl-From%3C%26String%3E-for-RefString"],[49,"impl-From%3CString%3E-for-RefString"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADoACAAFABMAGwAQAC0AAQAwAAIANAADAD0AAQBAAAYASAADAA=="}]\ +["refuse",{"t":"FFKFKFTKYKFFKRKYFFFFNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AnyRef","AnyRoot","Collectable","CollectionGuard","ContainsNoRefs","LocalPool","MAY_CONTAIN_REFERENCES","MapAs","MapAs","NoMapping","Ref","Root","SimpleType","Target","Trace","Trace","Tracer","WouldDeadlock","YieldComplete","Yielder","acquire","allocating_in","architecture","as_any","as_any","as_mut","as_ref","as_ref","as_ref","as_root","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","cmp","cmp","collect","collect","compare","compare","compare","compare","coordinated_yield","default","deref","downcast_checked","downcast_checked","downcast_ref","downcast_ref","downcast_root","downcast_root","downgrade","downgrade_any","drop","drop","drop","drop","enter","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into_any_root","load","load","load","load_mapped","map_as","mark","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","ptr_eq","root_count","to_any_root","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trace","trace","trace","trace","try_acquire","try_collect","try_collect","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_any","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_while_unlocked","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upgrade","wait","while_unlocked","yield_to_collector"],"q":[[0,"refuse"],[236,"core::option"],[237,"intentional::cast"],[238,"core::cmp"],[239,"core::ops::function"],[240,"core::fmt"],[241,"core::hash"],[242,"core::marker"],[243,"core::convert"],[244,"alloc::string"],[245,"core::result"],[246,"core::any"],[247,"refuse_macros"]],"i":[0,0,0,0,0,0,36,0,0,0,0,0,0,29,0,0,0,0,0,0,1,1,0,4,7,1,1,9,4,4,3,1,17,19,30,9,4,12,7,5,3,1,17,19,30,9,4,12,7,5,3,1,17,19,30,9,4,12,7,5,3,1,17,19,30,9,4,12,7,5,9,4,12,7,5,9,4,12,7,5,9,4,4,12,12,7,5,5,9,4,7,5,0,1,9,4,7,5,1,3,9,7,5,7,5,7,5,9,9,3,1,9,7,3,9,9,9,9,9,4,4,4,4,4,12,7,5,9,4,12,12,5,3,1,17,19,30,9,4,12,7,7,5,5,5,5,5,3,1,17,19,30,9,4,12,7,5,9,4,7,5,3,1,17,19,30,9,4,12,7,5,9,4,7,5,5,29,30,9,4,9,4,7,5,9,9,9,9,4,12,7,5,12,36,9,4,5,1,0,1,3,1,17,19,30,9,4,12,7,5,9,3,1,17,19,30,9,4,12,7,5,1,3,1,17,19,30,9,4,12,7,5,5,17,1,1],"f":"````````````````````{{}b}{{{d{b}}{d{f}}}b}`{{{h{c}}}jl}{{{d{n}}}j}{{{d{A`b}}}{{d{A`b}}}}{{{d{b}}}{{d{b}}}}{{{d{{Ab{c}}}}}{{d{{h{c}}}}}l}{{{d{{h{c}}}}}{{d{{h{c}}}}}{}}{{{d{{h{c}}}}{d{b}}}{{Ad{{Ab{c}}}}}l}{d{{d{c}}}{}}000000000{{{d{A`}}}{{d{A`c}}}{}}000000000{{}e{}{{Af{c}}}}000000000{{}c{}}000000000{{{d{{Ab{c}}}}}{{Ab{c}}}l}{{{d{{h{c}}}}}{{h{c}}}{}}{{{d{Ah}}}Ah}{{{d{n}}}n}{{{d{j}}}j}{{d{d{A`c}}}Aj{}}0000{dAj}0000000{{{d{{Ab{c}}}}{d{{Ab{c}}}}}Al{lAn}}{{{d{{h{c}}}}{d{{h{c}}}}}Al{}}{{{d{n}}{d{n}}}Al}{{{d{j}}{d{j}}}Al}{{}Aj}{{{d{A`b}}}Aj}{{d{d{c}}}Al{}}000{{{d{A`b}}c}B`{{Bh{Bb}{{Bd{Bf}}}}}}{{}f}{{{d{{Ab{c}}}}}{{d{e}}}l{}}{{{d{n}}}{{Ad{{h{c}}}}}l}{{{d{j}}}{{Ad{{h{c}}}}}l}{{{d{n}}}{{h{c}}}l}{{{d{j}}}{{h{c}}}l}{{{d{n}}}{{Ad{{Ab{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{Ab{c}}}}}l}{{{d{{Ab{c}}}}}{{h{c}}}l}{{{d{{Ab{c}}}}}jl}{{{d{A`f}}}Aj}={{{d{A`{Ab{c}}}}}Ajl}{{{d{A`n}}}Aj}{{{d{f}}}b}{{{d{{Ab{c}}}}{d{{d{j}}}}}B`l}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}B`{lBj}}{{{d{{Ab{c}}}}{d{{h{c}}}}}B`l}{{{d{{Ab{c}}}}{d{{d{{h{c}}}}}}}B`l}{{{d{{Ab{c}}}}{d{j}}}B`l}{{{d{{h{c}}}}{d{{d{{Ab{c}}}}}}}B`l}{{{d{{h{c}}}}{d{j}}}B`l}{{{d{{h{c}}}}{d{{d{j}}}}}B`l}{{{d{{h{c}}}}{d{{Ab{c}}}}}B`l}{{{d{{h{c}}}}{d{{h{c}}}}}B`{}}{{{d{Ah}}{d{Ah}}}B`}{{{d{n}}{d{n}}}B`}{{{d{j}}{d{j}}}B`}{{{d{{Ab{c}}}}{d{A`Bl}}}Bn{lC`}}{{{d{{h{c}}}}{d{A`Bl}}}Bn{lC`}}{{{d{Ah}}{d{A`Bl}}}Bn}0{{{d{j}}{d{A`Bl}}}Bn}{cc{}}0000000{{{Ab{c}}}nl}11{{{d{{Ab{c}}}}}jl}{{{h{c}}}jl}{{{d{{h{c}}}}}jl}{{{d{j}}}j}5555555555{{{d{{Ab{c}}}}{d{A`e}}}Aj{lCb}Cd}{{{d{{h{c}}}}{d{A`e}}}Aj{}Cd}{{{d{n}}{d{A`c}}}AjCd}{{{d{j}}{d{A`c}}}AjCd}{{}c{}}0000000009{{{d{{h{c}}}}{d{b}}}{{Ad{{d{c}}}}}l}{{{d{n}}}{{Ad{{d{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{d{c}}}}}l}{{{d{j}}{d{b}}}{{Ad{{d{c}}}}}Cf}{{{d{{Cj{}{{Ch{c}}}}}}}{{d{c}}}Cf}{{{d{A`Cl}}c}Aj{{Cn{j}}}}{{c{d{e}}}{{Ab{c}}}l{{D`{b}}}}{{c{d{e}}}{{h{c}}}l{{D`{b}}}}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}{{Ad{Al}}}{lDb}}{{{d{{h{c}}}}{d{{h{c}}}}}{{Ad{Al}}}{}}{{{d{n}}{d{n}}}{{Ad{Al}}}}{{{d{j}}{d{j}}}{{Ad{Al}}}}{{{d{{Ab{c}}}}{d{{Ab{c}}}}}B`l}{{{d{{Ab{c}}}}}Ddl}{{{d{{Ab{c}}}}}nl}{dc{}}0000{dDf}{{{d{Dh}}{d{A`Cl}}}Aj}{{{d{{Ab{c}}}}{d{A`Cl}}}Ajl}{{{d{{h{c}}}}{d{A`Cl}}}Ajl}{{{d{j}}{d{A`Cl}}}Aj}{{}{{Ad{b}}}}{{}{{Dj{AjAh}}}}{{{d{A`b}}}{{Dj{AjAh}}}}{c{{Dj{e}}}{}{}}000000000{{n{d{c}}}{{Dj{{Ab{e}}n}}}{{D`{b}}}l}{{}{{Dj{c}}}{}}000000000{{{d{A`b}}e}{{Dj{cAh}}}{}{{Bh{}{{Bd{c}}}}}}{dDl}000000000{{{d{j}}{d{b}}}{{Ad{n}}}}{BbBf}{{{d{A`b}}e}c{}{{Bh{}{{Bd{c}}}}}}{{{d{A`b}}}Aj}","D":"Jb","p":[[5,"CollectionGuard",0],[1,"reference"],[5,"LocalPool",0],[5,"Ref",0],[5,"AnyRef",0],[10,"Collectable",0],[5,"AnyRoot",0],[0,"mut"],[5,"Root",0],[6,"Option",236],[10,"CastFrom",237],[5,"WouldDeadlock",0],[1,"unit"],[6,"Ordering",238],[10,"Ord",238],[1,"bool"],[5,"Yielder",0],[17,"Output"],[5,"YieldComplete",0],[10,"FnOnce",239],[10,"PartialEq",238],[5,"Formatter",240],[8,"Result",240],[10,"Debug",240],[10,"Hash",241],[10,"Hasher",241],[10,"Sized",242],[17,"Target"],[10,"MapAs",0],[5,"Tracer",0],[10,"Into",243],[10,"AsRef",243],[10,"PartialOrd",238],[1,"u64"],[5,"String",244],[10,"Trace",0],[6,"Result",245],[5,"TypeId",246]],"r":[[8,247],[15,247]],"b":[[114,"impl-PartialEq%3C%26AnyRef%3E-for-Root%3CT%3E"],[115,"impl-PartialEq-for-Root%3CT%3E"],[116,"impl-PartialEq%3CRef%3CT%3E%3E-for-Root%3CT%3E"],[117,"impl-PartialEq%3C%26Ref%3CT%3E%3E-for-Root%3CT%3E"],[118,"impl-PartialEq%3CAnyRef%3E-for-Root%3CT%3E"],[119,"impl-PartialEq%3C%26Root%3CT%3E%3E-for-Ref%3CT%3E"],[120,"impl-PartialEq%3CAnyRef%3E-for-Ref%3CT%3E"],[121,"impl-PartialEq%3C%26AnyRef%3E-for-Ref%3CT%3E"],[122,"impl-PartialEq%3CRoot%3CT%3E%3E-for-Ref%3CT%3E"],[123,"impl-PartialEq-for-Ref%3CT%3E"],[129,"impl-Display-for-WouldDeadlock"],[130,"impl-Debug-for-WouldDeadlock"],[143,"impl-From%3C%26Root%3CT%3E%3E-for-AnyRef"],[144,"impl-From%3CRef%3CT%3E%3E-for-AnyRef"],[145,"impl-From%3C%26Ref%3CT%3E%3E-for-AnyRef"],[146,"impl-From%3C%26AnyRef%3E-for-AnyRef"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJsADgAaAAMAHwA9AF8AAwBkAAEAbgADAHMAEQCNAAAAkAARALUAAwC8AAUAwwACAMkACQDUAAkA3wAJAA=="}],\ +["refuse_macros",{"t":"YY","n":["MapAs","Trace"],"q":[[0,"refuse_macros"]],"i":[0,0],"f":"``","D":"f","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ +["refuse_pool",{"t":"FFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["RefString","RootString","as_any","as_root","borrow","borrow","borrow_mut","borrow_mut","cast","cast","cast_into","cast_into","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","deref","downgrade","downgrade_any","drop","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_any","from_cast","from_cast","hash","hash","into","into","load","new","new","partial_cmp","partial_cmp","root_count","to_owned","to_owned","to_string","trace","trace","try_from","try_from","try_from_any","try_into","try_into","type_id","type_id"],"q":[[0,"refuse_pool"],[75,"refuse"],[76,"core::option"],[77,"intentional::cast"],[78,"core::cmp"],[79,"alloc::string"],[80,"core::fmt"],[81,"core::hash"],[82,"alloc::borrow"],[83,"core::convert"],[84,"core::result"],[85,"core::any"]],"i":[0,0,1,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,1,5,1,5,1,5,5,5,5,5,5,5,5,5,5,1,1,5,5,1,1,5,5,1,5,5,5,5,1,1,1,1,1,5,1,5,1,5,1,1,5,1,5,1,5,5,1,5,5,1,5,1,5,5,1,5,1],"f":"``{{{d{b}}}f}{{{d{b}}{d{h}}}{{l{j}}}}{d{{d{c}}}{}}0{{{d{n}}}{{d{nc}}}{}}0{{}e{}{{A`{c}}}}0{{}c{}}0{{{d{j}}}j}{{{d{b}}}b}{{d{d{nc}}}Ab{}}0{dAb}00{{{d{j}}{d{j}}}Ad}{{{d{b}}{d{b}}}Ad}{{d{d{c}}}Ad{}}0{{{d{j}}}{{d{c}}}{}}{{{d{j}}}b}{{{d{j}}}f}{{{d{nj}}}Ab}{{{d{j}}{d{j}}}Af}{{{d{j}}{d{Ah}}}Af}{{{d{j}}{d{Aj}}}Af}{{{d{j}}{d{b}}}Af}{{{d{j}}{d{{d{Aj}}}}}Af}{{{d{j}}{d{{d{Ah}}}}}Af}{{{d{b}}{d{b}}}Af}{{{d{b}}{d{j}}}Af}{{d{d{c}}}Af{}}000{{{d{j}}{d{nAl}}}An}0{{{d{b}}{d{nAl}}}An}{{{d{Aj}}}j}{cc{}}{Ajj}{{{d{Ah}}}j}2{{{d{Ah}}}b}{{{d{Aj}}}b}{Ajb}{f{{l{b}}}}66{{{d{j}}{d{nc}}}AbB`}{{{d{b}}{d{nc}}}AbB`}{{}c{}}0{{{d{b}}{d{h}}}{{l{{d{Ah}}}}}}{{c{d{e}}}j{{Bd{{Bb{Ah}}}}}{{Bf{h}}}}{cb{{Bd{{Bb{Ah}}}}}}{{{d{j}}{d{j}}}{{l{Ad}}}}{{{d{b}}{d{b}}}{{l{Ad}}}}{{{d{j}}}Bh}{dc{}}0{dAj}{{{d{j}}{d{nBj}}}Ab}{{{d{b}}{d{nBj}}}Ab}{c{{Bl{e}}}{}{}}0{{Bn{d{c}}}{{Bl{jBn}}}{{Bf{h}}}}{{}{{Bl{c}}}{}}0{dC`}0","D":"Bb","p":[[5,"RefString",0],[1,"reference"],[5,"AnyRef",75],[5,"CollectionGuard",75],[5,"RootString",0],[6,"Option",76],[0,"mut"],[10,"CastFrom",77],[1,"unit"],[6,"Ordering",78],[1,"bool"],[1,"str"],[5,"String",79],[5,"Formatter",80],[8,"Result",80],[10,"Hasher",81],[6,"Cow",82],[10,"Into",83],[10,"AsRef",83],[1,"u64"],[5,"Tracer",75],[6,"Result",84],[5,"AnyRoot",75],[5,"TypeId",85]],"r":[],"b":[[27,"impl-PartialEq-for-RootString"],[28,"impl-PartialEq%3Cstr%3E-for-RootString"],[29,"impl-PartialEq%3CString%3E-for-RootString"],[30,"impl-PartialEq%3CRefString%3E-for-RootString"],[31,"impl-PartialEq%3C%26String%3E-for-RootString"],[32,"impl-PartialEq%3C%26str%3E-for-RootString"],[33,"impl-PartialEq-for-RefString"],[34,"impl-PartialEq%3CRootString%3E-for-RefString"],[39,"impl-Debug-for-RootString"],[40,"impl-Display-for-RootString"],[42,"impl-From%3C%26String%3E-for-RootString"],[44,"impl-From%3CString%3E-for-RootString"],[45,"impl-From%3C%26str%3E-for-RootString"],[47,"impl-From%3C%26str%3E-for-RefString"],[48,"impl-From%3C%26String%3E-for-RefString"],[49,"impl-From%3CString%3E-for-RefString"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADoACAAFABMAGwAQAC0AAQAwAAIANAADAD0AAQBAAAYASAADAA=="}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/main/search.desc/refuse/refuse-desc-0-.js b/main/search.desc/refuse/refuse-desc-0-.js index f8d14b8..190c33d 100644 --- a/main/search.desc/refuse/refuse-desc-0-.js +++ b/main/search.desc/refuse/refuse-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("refuse", 0, "Refuse\nA type-erased garbage collected reference.\nA type-erased root garbage collected reference.\nA type that can be garbage collected.\nA guard that prevents garbage collection while held.\nA type that can be garbage collected that cannot contain …\nA pool of garbage collected values.\nIf true, this type may contain references and should have …\nA mapping from one type to another.\nA type that implements MapAs with an empty implementation.\nA reference to data stored in a garbage collector.\nA root reference to a T that has been allocated in the …\nA type that can contain no Ref<T>s and has an empty MapAs …\nThe target type of the mapping.\nA type that can find and mark any references it has.\nA tracer for the garbage collector.\nAn error indicating an operation would deadlock.\nA marker indicating that a coordinated yield has completed.\nA pending yield to the garbage collector.\nAcquires a lock that prevents the garbage collector from …\nReturns a guard that allocates from pool.\nArchitecture overview of the underlying design of Refuse.\nReturns this reference as an untyped reference.\nReturns an untyped “weak” reference to this root.\nLoads a root reference to the underlying data. Returns None…\nInvokes the garbage collector.\nManually invokes the garbage collector.\nPerform a coordinated yield to the collector, if needed.\nReturns a Ref<T>, if T matches the type of this reference.\nReturns a Ref<T>, if T matches the type of this reference.\nReturns a Ref<T>.\nReturns a Ref<T>.\nReturns a Root<T> if the underlying reference points to a T…\nReturns a Root<T> if the underlying reference points to a T…\nReturns a “weak” reference to this root.\nReturns an untyped “weak” reference erased to this …\nAcquires a collection guard for this pool.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns this root as an untyped root.\nLoads a reference to the underlying data. Returns None if …\nLoads a reference to the underlying data. Returns None if T…\nLoads a reference to the underlying data. Returns None if …\nReturns a reference to the result of MapAs::map_as(), if …\nMaps self to target type.\nMarks collectable as being referenced, ensuring it is not …\nStores value in the garbage collector, returning a root …\nStores value in the garbage collector, returning a “weak…\nReturns true if these two references point to the same …\nReturns the current number of root references to this …\nReturns an untyped root reference.\nTraces all refrences that this value references.\nTries to acquire a lock that prevents the garbage …\nInvokes the garbage collector.\nManually invokes the garbage collector.\nTry to convert a typeless root reference into a Root<T>.\nExecutes unlocked while this guard is temporarily released.\nReturns a root for this reference, if the value has not …\nWaits for the garbage collector to finish the current …\nExecutes unlocked while this guard is temporarily released.\nYield to the garbage collector, if needed.") \ No newline at end of file +searchState.loadedDescShard("refuse", 0, "Refuse\nA type-erased garbage collected reference.\nA type-erased root garbage collected reference.\nA type that can be garbage collected.\nA guard that prevents garbage collection while held.\nA type that can be garbage collected that cannot contain …\nA pool of garbage collected values.\nIf true, this type may contain references and should have …\nA mapping from one type to another.\nDerives the refuse::MapAs trait for a given struct or enum.\nA type that implements MapAs with an empty implementation.\nA reference to data stored in a garbage collector.\nA root reference to a T that has been allocated in the …\nA type that can contain no Ref<T>s and has an empty MapAs …\nThe target type of the mapping.\nA type that can find and mark any references it has.\nDerives the refuse::Trace trait for a given struct or enum.\nA tracer for the garbage collector.\nAn error indicating an operation would deadlock.\nA marker indicating that a coordinated yield has completed.\nA pending yield to the garbage collector.\nAcquires a lock that prevents the garbage collector from …\nReturns a guard that allocates from pool.\nArchitecture overview of the underlying design of Refuse.\nReturns this reference as an untyped reference.\nReturns an untyped “weak” reference to this root.\nLoads a root reference to the underlying data. Returns None…\nInvokes the garbage collector.\nManually invokes the garbage collector.\nPerform a coordinated yield to the collector, if needed.\nReturns a Ref<T>, if T matches the type of this reference.\nReturns a Ref<T>, if T matches the type of this reference.\nReturns a Ref<T>.\nReturns a Ref<T>.\nReturns a Root<T> if the underlying reference points to a T…\nReturns a Root<T> if the underlying reference points to a T…\nReturns a “weak” reference to this root.\nReturns an untyped “weak” reference erased to this …\nAcquires a collection guard for this pool.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns this root as an untyped root.\nLoads a reference to the underlying data. Returns None if …\nLoads a reference to the underlying data. Returns None if T…\nLoads a reference to the underlying data. Returns None if …\nReturns a reference to the result of MapAs::map_as(), if …\nMaps self to target type.\nMarks collectable as being referenced, ensuring it is not …\nStores value in the garbage collector, returning a root …\nStores value in the garbage collector, returning a “weak…\nReturns true if these two references point to the same …\nReturns the current number of root references to this …\nReturns an untyped root reference.\nTraces all refrences that this value references.\nTries to acquire a lock that prevents the garbage …\nInvokes the garbage collector.\nManually invokes the garbage collector.\nTry to convert a typeless root reference into a Root<T>.\nExecutes unlocked while this guard is temporarily released.\nReturns a root for this reference, if the value has not …\nWaits for the garbage collector to finish the current …\nExecutes unlocked while this guard is temporarily released.\nYield to the garbage collector, if needed.") \ No newline at end of file diff --git a/main/search.desc/refuse_macros/refuse_macros-desc-0-.js b/main/search.desc/refuse_macros/refuse_macros-desc-0-.js index 423fae8..513079a 100644 --- a/main/search.desc/refuse_macros/refuse_macros-desc-0-.js +++ b/main/search.desc/refuse_macros/refuse_macros-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("refuse_macros", 0, "Macros for the Refuse garbage collector.") \ No newline at end of file +searchState.loadedDescShard("refuse_macros", 0, "Macros for the Refuse garbage collector.\nDerives the refuse::MapAs trait for a given struct or enum.\nDerives the refuse::Trace trait for a given struct or enum.") \ No newline at end of file diff --git a/main/settings.html b/main/settings.html index 806a6de..4849f5a 100644 --- a/main/settings.html +++ b/main/settings.html @@ -1 +1 @@ -Settings

    Rustdoc settings

    Back
    \ No newline at end of file +Settings

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/main/src/benchmarks/lib.rs.html b/main/src/benchmarks/lib.rs.html index 4ea8ceb..eb1cb5b 100644 --- a/main/src/benchmarks/lib.rs.html +++ b/main/src/benchmarks/lib.rs.html @@ -1,3 +1,3 @@ -lib.rs - source
    1
    +lib.rs - source
    1
     
    
     
    \ No newline at end of file diff --git a/main/src/refuse/lib.rs.html b/main/src/refuse/lib.rs.html index 084d271..06c8cce 100644 --- a/main/src/refuse/lib.rs.html +++ b/main/src/refuse/lib.rs.html @@ -1,4 +1,4 @@ -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    @@ -3088,6 +3088,21 @@
     3088
     3089
     3090
    +3091
    +3092
    +3093
    +3094
    +3095
    +3096
    +3097
    +3098
    +3099
    +3100
    +3101
    +3102
    +3103
    +3104
    +3105
     
    #![doc = include_str!("../README.md")]
     
     use core::slice;
    @@ -3738,7 +3753,7 @@
         }
     
         fn release_thread_guard() {
    -        Self::map_current(Self::release_guard)
    +        Self::map_current(Self::release_guard);
         }
     
         fn push_guard(&self) -> usize {
    @@ -4120,6 +4135,7 @@
         ///
         /// If any other guards are currently held by this thread, this function
         /// does nothing.
    +    #[allow(clippy::redundant_closure_for_method_calls)] // produces compiler error
         pub fn yield_to_collector(&mut self) {
             self.coordinated_yield(|yielder| yielder.wait());
         }
    @@ -4146,11 +4162,17 @@
         ///
         /// If any other guards are currently held by this thread, this function
         /// does nothing.
    -    pub fn coordinated_yield(&mut self, yielder: impl FnOnce(Yielder<'_>) -> YieldComplete) {
    +    pub fn coordinated_yield(
    +        &mut self,
    +        yielder: impl FnOnce(Yielder<'_>) -> YieldComplete,
    +    ) -> bool {
             // We only need to attempt yielding if we are the outermost guard.
             if ThreadPool::current_depth() == 1 && self.collector.release_reader_if_collecting() {
    -            let YieldComplete = yielder(Yielder(&mut self.collector));
    -        }
    +            let _complete: YieldComplete = yielder(Yielder(&mut self.collector));
    +            true
    +        } else {
    +            false
    +        }
         }
     
         /// Executes `unlocked` while this guard is temporarily released.
    @@ -4212,15 +4234,18 @@
     
     impl Yielder<'_> {
         /// Waits for the garbage collector to finish the current collection.
    +    #[must_use]
         pub fn wait(self) -> YieldComplete {
             self.0.acquire_reader();
    -        YieldComplete
    +        YieldComplete { _priv: PhantomData }
         }
     }
     
     /// A marker indicating that a [coordinated
     /// yield](CollectionGuard::coordinated_yield) has completed.
    -pub struct YieldComplete;
    +pub struct YieldComplete {
    +    _priv: PhantomData<()>,
    +}
     
     /// A type that can be garbage collected.
     ///
    @@ -4661,7 +4686,7 @@
     
         /// Stores `value` in the garbage collector, returning a root reference to
         /// the data.
    -    pub fn new<'a>(value: T, guard: impl AsRef<CollectionGuard<'a>>) -> Self {
    +    pub fn new<'a>(value: T, guard: &impl AsRef<CollectionGuard<'a>>) -> Self {
             let guard = guard.as_ref();
             let (type_index, gen, bin) = guard.adopt(Rooted::root(value));
             Self::from_parts(type_index, gen, bin, guard)
    @@ -4674,10 +4699,10 @@
         /// Returns `Err(root)` if `root` does not contain a `T`.
         pub fn try_from_any<'a>(
             root: AnyRoot,
    -        guard: impl AsRef<CollectionGuard<'a>>,
    +        guard: &impl AsRef<CollectionGuard<'a>>,
         ) -> Result<Self, AnyRoot> {
             if TypeIndex::of::<T>() == root.any.type_index {
    -            let slot = root.any.load_slot(guard.as_ref()).expect("root missing");
    +            let slot = root.any.load_slot(guard.as_ref()).assert("root missing");
                 Ok(Self {
                     data: slot,
                     reference: root.any.downcast_ref(),
    @@ -4720,6 +4745,7 @@
         }
     
         /// Returns this root as an untyped root.
    +    #[must_use]
         pub fn into_any_root(self) -> AnyRoot {
             // We transfer ownership of this reference to the AnyRoot, so we want to
             // avoid calling drop on `self`.
    @@ -4862,7 +4888,7 @@
         T: Collectable + Hash,
     {
         fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
    -        (**self).hash(state)
    +        (**self).hash(state);
         }
     }
     
    @@ -4946,7 +4972,7 @@
     {
         /// Stores `value` in the garbage collector, returning a "weak" reference to
         /// it.
    -    pub fn new<'a>(value: T, guard: impl AsRef<CollectionGuard<'a>>) -> Self {
    +    pub fn new<'a>(value: T, guard: &impl AsRef<CollectionGuard<'a>>) -> Self {
             let guard = guard.as_ref();
             let (type_index, slot_generation, bin_id) = guard.adopt(Rooted::reference(value));
     
    @@ -5348,7 +5374,7 @@
                 let slot = unsafe { &(*slot.value.get()).allocated };
                 slot.roots.fetch_add(1, Ordering::Relaxed);
                 Some(AnyRoot {
    -                rooted: (&**slot) as *const Rooted<T> as *const (),
    +                rooted: std::ptr::addr_of!(**slot).cast::<()>(),
                     roots: &slot.roots,
                     any: AnyRef {
                         bin_id,
    @@ -5771,7 +5797,7 @@
     /// yielding by the current thread when invoked. If a guard is held, consider
     /// calling [`CollectionGuard::collect()`] instead.
     pub fn collect() {
    -    try_collect().unwrap()
    +    try_collect().unwrap();
     }
     
     /// Invokes the garbage collector.
    @@ -5856,6 +5882,7 @@
     impl AnyRoot {
         /// Loads a reference to the underlying data. Returns `None` if `T` is not
         /// the type of the underlying data.
    +    #[must_use]
         pub fn load<T>(&self) -> Option<&T>
         where
             T: Collectable,
    @@ -5873,6 +5900,7 @@
         }
     
         /// Returns a [`Root<T>`] if the underlying reference points to a `T`.
    +    #[must_use]
         pub fn downcast_root<T>(&self) -> Option<Root<T>>
         where
             T: Collectable,
    @@ -5900,6 +5928,7 @@
         ///
         /// This function does not do any type checking. If `T` is not the correct
         /// type, attempting to load the underyling value will fail.
    +    #[must_use]
         pub const fn downcast_ref<T>(&self) -> Ref<T>
         where
             T: Collectable,
    @@ -5917,6 +5946,7 @@
         }
     
         /// Returns an untyped "weak" reference to this root.
    +    #[must_use]
         pub const fn as_any(&self) -> AnyRef {
             self.any
         }
    diff --git a/main/src/refuse_macros/lib.rs.html b/main/src/refuse_macros/lib.rs.html
    index 998f22c..c447417 100644
    --- a/main/src/refuse_macros/lib.rs.html
    +++ b/main/src/refuse_macros/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    @@ -245,6 +245,12 @@
     245
     246
     247
    +248
    +249
    +250
    +251
    +252
    +253
     
    //! Macros for the [Refuse](https://github.com/khonsulabs/refuse) garbage
     //! collector.
     
    @@ -256,7 +262,10 @@
     use quote::quote;
     use syn::{GenericParam, Generics, Lifetime, TraitBound};
     
    -#[manyhow]
    +/// Derives the `refuse::MapAs` trait for a given struct or enum.
    +///
    +/// This macro expects the identifier `refuse` to refer to the crate.
    +#[manyhow]
     #[proc_macro_derive(MapAs, attributes(map_as))]
     pub fn derive_map_as(input: syn::Item) -> manyhow::Result {
         match input {
    @@ -300,7 +309,10 @@
         }
     }
     
    -#[manyhow]
    +/// Derives the `refuse::Trace` trait for a given struct or enum.
    +///
    +/// This macro expects the identifier `refuse` to refer to the crate.
    +#[manyhow]
     #[proc_macro_derive(Trace, attributes(trace))]
     pub fn derive_trace(input: syn::Item) -> manyhow::Result {
         match input {
    diff --git a/main/src/refuse_pool/lib.rs.html b/main/src/refuse_pool/lib.rs.html
    index 610c8d8..2747eaa 100644
    --- a/main/src/refuse_pool/lib.rs.html
    +++ b/main/src/refuse_pool/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    @@ -444,6 +444,13 @@
     444
     445
     446
    +447
    +448
    +449
    +450
    +451
    +452
    +453
     
    //! Garbage-collected "interned" strings.
     //!
     //! Interning is a process of making many equal things share the same underlying
    @@ -486,10 +493,11 @@
     use std::fmt::{Debug, Display};
     use std::hash::{Hash, Hasher};
     use std::ops::Deref;
    -use std::sync::{Mutex, OnceLock};
    +use std::sync::OnceLock;
     
     use ahash::AHasher;
     use hashbrown::{hash_table, HashTable};
    +use parking_lot::Mutex;
     use refuse::{AnyRef, AnyRoot, CollectionGuard, LocalPool, Ref, Root, SimpleType, Trace};
     
     enum PoolEntry {
    @@ -538,7 +546,7 @@
             let hash = hash_str(key.as_ref());
             match self
                 .strings
    -            .entry(hash, |a| a.equals(&key, guard), |e| e.hash())
    +            .entry(hash, |a| a.equals(&key, guard), PoolEntry::hash)
             {
                 hash_table::Entry::Occupied(entry) => {
                     let entry = entry.into_mut();
    @@ -595,22 +603,25 @@
         ///
         /// If another [`RootString`] or [`RefString`] exists already with the same
         /// contents as `s`, it will be returned and `s` will be dropped.
    -    pub fn new<'a>(s: impl Into<Cow<'a, str>>, guard: impl AsRef<CollectionGuard<'a>>) -> Self {
    -        let mut pool = StringPool::global().lock().expect("poisoned");
    +    pub fn new<'a>(s: impl Into<Cow<'a, str>>, guard: &impl AsRef<CollectionGuard<'a>>) -> Self {
    +        let mut pool = StringPool::global().lock();
             pool.intern(s.into(), guard.as_ref()).clone()
         }
     
         /// Returns a reference to this root string.
    +    #[must_use]
         pub const fn downgrade(&self) -> RefString {
             RefString(self.0.downgrade())
         }
     
         /// Returns a typeless reference to this string.
    +    #[must_use]
         pub const fn downgrade_any(&self) -> AnyRef {
             self.0.downgrade_any()
         }
     
         /// Returns the number of root references to this string, `self` included.
    +    #[must_use]
         pub fn root_count(&self) -> u64 {
             // We subtract one because the string pool always contains a reference.
             // Including it in the publicly viewable count would just lead to
    @@ -626,7 +637,7 @@
         /// Returns `Err(root)` if `root` does not contain a pooled string.
         pub fn try_from_any<'a>(
             root: AnyRoot,
    -        guard: impl AsRef<CollectionGuard<'a>>,
    +        guard: &impl AsRef<CollectionGuard<'a>>,
         ) -> Result<Self, AnyRoot> {
             Root::try_from_any(root, guard).map(Self)
         }
    @@ -637,7 +648,7 @@
             if self.0.root_count() == 2 {
                 // This is the last `RootString` aside from the one stored in the
                 // pool, so we should remove the pool entry.
    -            let mut pool = StringPool::global().lock().expect("poisoned");
    +            let mut pool = StringPool::global().lock();
                 let entry = pool
                     .strings
                     .find_entry(self.0.hash, |s| s == &self.0)
    @@ -791,7 +802,7 @@
         /// contents as `s`, it will be returned and `s` will be dropped.
         pub fn new<'a>(s: impl Into<Cow<'a, str>>) -> Self {
             let guard = CollectionGuard::acquire();
    -        let mut pool = StringPool::global().lock().expect("poisoned");
    +        let mut pool = StringPool::global().lock();
             pool.intern(s.into(), &guard).downgrade()
         }
     
    @@ -804,16 +815,19 @@
     
         /// Loads a reference to the underlying string, if the string hasn't been
         /// freed.
    +    #[must_use]
         pub fn load<'guard>(&self, guard: &'guard CollectionGuard) -> Option<&'guard str> {
             self.0.load(guard).map(|pooled| &*pooled.string)
         }
     
         /// Loads this string as a root, if the string hasn't been freed.
    +    #[must_use]
         pub fn as_root(&self, guard: &CollectionGuard) -> Option<RootString> {
             self.0.as_root(guard).map(RootString)
         }
     
         /// Returns a typeless reference to this string.
    +    #[must_use]
         pub fn as_any(&self) -> AnyRef {
             self.0.as_any()
         }
    diff --git a/main/trait.impl/refuse/trait.Trace.js b/main/trait.impl/refuse/trait.Trace.js
    index 1d207bc..0d13a7c 100644
    --- a/main/trait.impl/refuse/trait.Trace.js
    +++ b/main/trait.impl/refuse/trait.Trace.js
    @@ -1,4 +1,4 @@
     (function() {var implementors = {
     "refuse":[],
    -"refuse_pool":[["impl Trace for RefString"],["impl Trace for RootString"]]
    +"refuse_pool":[["impl Trace for RefString"],["impl Trace for RootString"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file