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, allow_mgca_arg: bool) -> bool
pub fn is_potential_trivial_const_arg(&self, allow_mgca_arg: bool) -> bool
Check if this path is potentially a trivial const arg, i.e., one that can potentially be represented without an anon const in the HIR.
If allow_mgca_arg
is true (as should be the case in most situations when
#![feature(min_generic_const_args)]
is enabled), then this always returns true
because all paths are valid.
Otherwise, it returns true iff the path has exactly one segment, and it has no generic args (i.e., it is potentially a const parameter).
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
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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>
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