Struct boa_interner::Interner

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

The string interner for Boa.

Implementations§

source§

impl Interner

source

pub fn new() -> Self

Creates a new Interner.

source

pub fn with_capacity(capacity: usize) -> Self

Creates a new Interner with the specified capacity.

source

pub fn len(&self) -> usize

Returns the number of strings interned by the interner.

source

pub fn is_empty(&self) -> bool

Returns true if the Interner contains no interned strings.

source

pub fn get<'a, T>(&self, string: T) -> Option<Sym>
where T: Into<JStrRef<'a>>,

Returns the symbol for the given string if any.

Can be used to query if a string has already been interned without interning.

source

pub fn get_or_intern<'a, T>(&mut self, string: T) -> Sym
where T: Into<JStrRef<'a>>,

Interns the given string.

Returns a symbol for resolution into the original string.

§Panics

If the interner already interns the maximum number of strings possible by the chosen symbol type.

source

pub fn get_or_intern_static( &mut self, utf8: &'static str, utf16: &'static [u16] ) -> Sym

Interns the given 'static string.

Returns a symbol for resolution into the original string.

§Note

This is more efficient than Interner::get_or_intern, since it avoids allocating space for one string inside the Interner, with the disadvantage that you need to provide both the UTF-8 and the UTF-16 representation of the string.

§Panics

If the interner already interns the maximum number of strings possible by the chosen symbol type.

source

pub fn resolve(&self, symbol: Sym) -> Option<JSInternedStrRef<'_, '_>>

Returns the string for the given symbol if any.

§Panics

Panics if the size of both statics is not equal or the interners do not have the same size

source

pub fn resolve_expect(&self, symbol: Sym) -> JSInternedStrRef<'_, '_>

Returns the string for the given symbol.

§Panics

If the interner cannot resolve the given symbol.

Trait Implementations§

source§

impl Debug for Interner

source§

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

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

impl Default for Interner

source§

fn default() -> Interner

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

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