[][src]Struct syntax::source_map::symbol::InternedString

pub struct InternedString { /* fields omitted */ }

An alternative to Symbol that is focused on string contents. It has two main differences to Symbol.

First, its implementations of Hash, PartialOrd and Ord work with the string chars rather than the symbol integer. This is useful when hash stability is required across compile sessions, or a guaranteed sort ordering is required.

Second, gensym-ness is irrelevant. E.g.:

assert_ne!(Symbol::gensym("x"), Symbol::gensym("x"))
assert_eq!(Symbol::gensym("x").as_interned_str(), Symbol::gensym("x").as_interned_str())

Methods

impl InternedString[src]

pub fn intern(string: &str) -> InternedString[src]

Maps a string to its interned representation.

pub fn with<F, R>(self, f: F) -> R where
    F: FnOnce(&str) -> R, 
[src]

pub fn as_symbol(self) -> Symbol[src]

pub fn as_str(self) -> LocalInternedString[src]

Trait Implementations

impl Hash for InternedString[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl PartialOrd<InternedString> for InternedString[src]

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Decodable for InternedString[src]

impl Eq for InternedString[src]

impl Debug for InternedString[src]

impl Display for InternedString[src]

impl Ord for InternedString[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl Encodable for InternedString[src]

impl Clone for InternedString[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Copy for InternedString[src]

impl PartialEq<InternedString> for InternedString[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Encodable for T where
    T: UseSpecializedEncodable + ?Sized
[src]

impl<T> Decodable for T where
    T: UseSpecializedDecodable
[src]

impl<E> SpecializationError for E[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Send for T where
    T: ?Sized
[src]

impl<T> Sync for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]