cl_structures::intern::string_interner

Struct 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> Default for StringInterner<'a>

Source§

fn default() -> StringInterner<'a>

Returns the “default value” for a type. Read more
Source§

impl Display for StringInterner<'_>

Source§

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

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

impl Send for StringInterner<'_>

Source§

impl Sync for StringInterner<'_>

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.