GlobalInterner

Struct GlobalInterner 

Source
pub struct GlobalInterner { /* private fields */ }
Expand description

Thread-safe global string interner.

Strings interned here live for the lifetime of the program. Use this for identifiers that appear frequently across many queries.

Implementations§

Source§

impl GlobalInterner

Source

pub fn get() -> &'static Self

Get the global interner instance.

Source

pub fn intern(&self, s: &str) -> InternedStr

Intern a string, returning an interned reference.

If the string has been interned before, returns the existing reference. Otherwise, creates a new interned entry.

Source

pub fn lookup(&self, s: &str) -> Option<InternedStr>

Try to get an already-interned string without creating a new entry.

Source

pub fn len(&self) -> usize

Get the number of interned strings.

Source

pub fn is_empty(&self) -> bool

Check if the interner is empty.

Source

pub fn stats(&self) -> InternerStats

Get interning statistics.

Source

pub fn clear(&self)

Clear all interned strings (use with caution!).

This invalidates all existing InternedStr references from this interner. Only use during testing or shutdown.

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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>,

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

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more