[][src]Struct syntax::symbol::Symbol

pub struct Symbol(SymbolIndex);
⚙️ 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 interned string.

Internally, a Symbol is implemented as an index, and all operations (including hashing, equality, and ordering) operate on that index. The use of rustc_index::newtype_index! means that Option<Symbol> only takes up 4 bytes, because rustc_index::newtype_index! reserves the last 256 values for tagging purposes.

Note that Symbol cannot directly be a rustc_index::newtype_index! because it implements fmt::Debug, Encodable, and Decodable in special ways.

Methods

impl Symbol[src]

pub fn intern(string: &str) -> 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.

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.

Access the symbol's chars. This is a slowish operation because it requires locking the symbol interner.

pub fn as_str(self) -> SymbolStr[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 SymbolStr. This is a slowish operation because it requires locking the symbol interner.

pub fn as_u32(self) -> u32[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.

impl Symbol[src]

pub fn is_doc_keyword(self) -> bool[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.

Used for sanity checking rustdoc keyword sections.

pub fn is_path_segment_keyword(self) -> bool[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.

A keyword or reserved identifier that can be used as a path segment.

pub fn is_bool_lit(self) -> bool[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.

Returns true if the symbol is true or false.

pub fn can_be_raw(self) -> bool[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.

This symbol can be a raw identifier.

Trait Implementations

impl Clone for Symbol[src]

impl Copy for Symbol[src]

impl Debug for Symbol[src]

impl Decodable for Symbol[src]

impl Display for Symbol[src]

impl Encodable for Symbol[src]

impl Eq for Symbol[src]

impl Hash for Symbol[src]

impl<CTX> HashStable<CTX> for Symbol[src]

impl Ord for Symbol[src]

impl PartialEq<Symbol> for Symbol[src]

impl PartialEq<Symbol> for Path[src]

impl PartialOrd<Symbol> for Symbol[src]

impl StructuralEq for Symbol[src]

impl StructuralPartialEq for Symbol[src]

impl<CTX> ToStableHashKey<CTX> for Symbol[src]

type KeyType = SymbolStr

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

Auto Trait Implementations

impl RefUnwindSafe for Symbol

impl Send for Symbol

impl Sync for Symbol

impl Unpin for Symbol

impl UnwindSafe for Symbol

Blanket Implementations

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

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

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

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

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

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

impl<T> Erased for T[src]

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

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

impl<E> SpecializationError for E[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 = !

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.