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

pub struct InternedString {
    symbol: Symbol,
}
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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())

Fields

symbol: Symbol
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Methods

impl InternedString[src]

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Maps a string to its interned representation.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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 Clone 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 Debug for InternedString[src]

impl Display for InternedString[src]

impl Hash for InternedString[src]

impl Encodable for InternedString[src]

impl Copy for InternedString[src]

Auto Trait Implementations

impl Send for InternedString

impl Sync for InternedString

impl Unpin for InternedString

impl UnwindSafe for InternedString

impl RefUnwindSafe for InternedString

Blanket Implementations

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

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

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[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> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<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]