Struct rune::ast::Path [−][src]
A path, where each element is separated by a ::
.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Path>("foo::bar"); testing::roundtrip::<ast::Path>("Self::bar"); testing::roundtrip::<ast::Path>("self::bar"); testing::roundtrip::<ast::Path>("crate::bar"); testing::roundtrip::<ast::Path>("super::bar"); testing::roundtrip::<ast::Path>("HashMap::<Foo, Bar>"); testing::roundtrip::<ast::Path>("super::HashMap::<Foo, Bar>");
Fields
id: Option<Id>
Opaque id associated with path.
global: Option<ColonColon>
The optional leading colon ::
indicating global scope.
first: PathSegment
The first component in the path.
rest: Vec<(ColonColon, PathSegment)>
The rest of the components in the path.
trailing: Option<ColonColon>
Trailing scope.
Implementations
impl Path
[src]
pub fn as_kind(&self) -> Option<PathKind>
[src]
Identify the kind of the path.
pub fn try_as_ident(&self) -> Option<&Ident>
[src]
Borrow as an identifier used for field access calls.
This is only allowed if there are no other path components
and the path segment is not Crate
or Super
.
pub fn try_as_ident_mut(&mut self) -> Option<&mut Ident>
[src]
Borrow as an identifier used for field access calls.
This is only allowed if there are no other path components
and the path segment is not Crate
or Super
.
pub fn as_components(&self) -> impl Iterator<Item = &PathSegment> + '_
[src]
Iterate over all components in path.
Trait Implementations
impl Clone for Path
[src]
impl Debug for Path
[src]
impl Eq for Path
[src]
impl Parse for Path
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl PartialEq<Path> for Path
[src]
impl Peek for Path
[src]
impl<'a> Resolve<'a> for Path
[src]
Resolve implementation for path which “stringifies” it.
type Output = Box<str>
The output type being resolved into.
fn resolve(
&self,
storage: &Storage,
source: &'a Source
) -> Result<Self::Output, ResolveError>
[src]
&self,
storage: &Storage,
source: &'a Source
) -> Result<Self::Output, ResolveError>
impl ResolveOwned for Path
[src]
type Owned = Box<str>
The output type being resolved into.
fn resolve_owned(
&self,
storage: &Storage,
source: &Source
) -> Result<Self::Owned, ResolveError>
[src]
&self,
storage: &Storage,
source: &Source
) -> Result<Self::Owned, ResolveError>
impl Spanned for Path
[src]
impl StructuralEq for Path
[src]
impl StructuralPartialEq for Path
[src]
impl ToTokens for Path
[src]
fn to_tokens(&self, context: &MacroContext, stream: &mut TokenStream)
[src]
Auto Trait Implementations
impl RefUnwindSafe for Path
impl Send for Path
impl Sync for Path
impl Unpin for Path
impl UnwindSafe for Path
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,