pub struct Path {
pub span: Span,
pub segments: ThinVec<PathSegment>,
pub tokens: Option<LazyAttrTokenStream>,
}
Expand description
A “Path” is essentially Rust’s notion of a name.
It’s represented as a sequence of identifiers, along with a bunch of supporting information.
E.g., std::cmp::PartialEq
.
Fields§
§span: Span
§segments: ThinVec<PathSegment>
The segments in the path: the things separated by ::
.
Global paths begin with kw::PathRoot
.
tokens: Option<LazyAttrTokenStream>
Implementations§
source§impl Path
impl Path
sourcepub fn from_ident(ident: Ident) -> Path
pub fn from_ident(ident: Ident) -> Path
Convert a span and an identifier to the corresponding one-segment path.
pub fn is_global(&self) -> bool
sourcepub fn is_potential_trivial_const_arg(&self) -> bool
pub fn is_potential_trivial_const_arg(&self) -> bool
If this path is a single identifier with no arguments, does not ensure that the path resolves to a const param, the caller should check this.
Trait Implementations§
source§impl HasAttrs for Path
impl HasAttrs for Path
source§const SUPPORTS_CUSTOM_INNER_ATTRS: bool = false
const SUPPORTS_CUSTOM_INNER_ATTRS: bool = false
This is
true
if this HasAttrs
might support ‘custom’ (proc-macro) inner
attributes. Attributes like #![cfg]
and #![cfg_attr]
are not
considered ‘custom’ attributes. Read morefn attrs(&self) -> &[Attribute]
fn visit_attrs(&mut self, _f: impl FnOnce(&mut AttrVec))
source§impl HasTokens for Path
impl HasTokens for Path
fn tokens(&self) -> Option<&LazyAttrTokenStream>
fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>>
source§impl<CTX: HashStableContext> HashStable<CTX> for Path
impl<CTX: HashStableContext> HashStable<CTX> for Path
fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher)
Auto Trait Implementations§
impl DynSend for Path
impl DynSync for Path
impl Freeze for Path
impl !RefUnwindSafe for Path
impl !Send for Path
impl !Sync for Path
impl Unpin for Path
impl !UnwindSafe for Path
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes