[][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]

Convert to a LocalInternedString. This is a slowish operation because it requires locking the symbol interner.

Trait Implementations

impl PartialEq<InternedString> for InternedString[src]

impl Debug for InternedString[src]

impl Decodable for InternedString[src]

impl Eq for InternedString[src]

impl Ord for InternedString[src]

impl PartialOrd<InternedString> for InternedString[src]

impl Hash for InternedString[src]

impl Display for InternedString[src]

impl Clone for InternedString[src]

impl Encodable for InternedString[src]

impl Copy for InternedString[src]

Auto Trait Implementations

Blanket Implementations

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

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> 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> Erased for T[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]