Struct cl_structures::intern::string_interner::StringInterner

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

A string interner hands out Interned copies of each unique string given to it.

Implementations§

source§

impl StringInterner<'static>

source

pub fn global() -> &'static Self

Gets a reference to a global string interner whose Interned strings are 'static

source§

impl<'a> StringInterner<'a>

source

pub fn new(arena: DroplessArena<'a>) -> Self

Creates a new StringInterner backed by the provided DroplessArena

source

pub fn get_or_insert(&'a self, value: &str) -> Interned<'a, str>

Returns an Interned copy of the given string, allocating a new one if it doesn’t already exist.

§Blocks

This function blocks when the interner is held by another thread.

source

pub fn get(&'a self, value: &str) -> Option<Interned<'a, str>>

Gets a reference to the interned copy of the given value, if it exists

§Blocks

This function blocks when the interner is held by another thread.

Trait Implementations§

source§

impl Debug for StringInterner<'_>

source§

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

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

impl<'a> Send for StringInterner<'a>

source§

impl<'a> Sync for StringInterner<'a>

Auto Trait Implementations§

§

impl<'a> !Freeze for StringInterner<'a>

§

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

§

impl<'a> Unpin for StringInterner<'a>

§

impl<'a> UnwindSafe for StringInterner<'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
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<T, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.