Struct GlobalInterner

Source
pub struct GlobalInterner;
Available on crate feature global only.
Expand description

A global Interner, just for convenience.

GlobalInterner functions just like any other Interner, so a string interned in another interner will not be automatically interned into this one.

For most purposes, intern will be sufficient.

Methods from Deref<Target = Interner>§

Source

pub fn clear(&self)

Locks this Interner and removes all of the interned strings, or blocks until it is able to do so.

interner.clear() is equivalent to intenerer.lock().clear(). (See LockedInterner::clear.)

§Panics

This method panics if this Interner has been poisoned, and it may panic if this Interner is already locked on this thread.

Source

pub fn lock(&self) -> LockedInterner<'_, S>

Locks this Interner on the current thread until the returned LockedInterner is dropped, or blocks until it is able to do so.

While it is locked, the current thread has exclusive access to this Interner’s methods (accessible from the LockedInterner; any methods used directly on self may panic). This enables some additional functionality, most notably LockedInterner::iter.

If a panic occurs on the current thread while this Interner is locked, it will become poisoned.

§Panics

This method panics if this Interner has been poisoned, and it may panic if this Interner is already locked on this thread.

Source

pub fn intern(&self, string: impl AsRef<str>) -> InternedStr
where S: BuildHasher,

Locks this Interner, saves the given string if it is not already saved, and returns a reference to the saved allocation, or blocks until it is able to do so.

interner.intern(string) is equivalent to interner.lock().intern(string). (See LockedInterner::intern.)

§Panics

This method panics if this Interner has been poisoned, and it may panic if this Interner is already locked on this thread.

Source

pub fn contains(&self, string: impl AsRef<str>) -> bool

Returns whether the given string has already been saved, or blocks until it is able to do so.

Source

pub fn get(&self, string: impl AsRef<str>) -> Option<InternedStr>

If the given string has already been saved, returns a reference to the saved allocation, or None otherwise, or blocks until it is able to do so.

Trait Implementations§

Source§

impl Deref for GlobalInterner

Source§

type Target = Interner

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Interner

Dereferences the value.

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.