Struct rune::ast::Path[][src]

pub struct Path {
    pub id: Option<Id>,
    pub global: Option<ColonColon>,
    pub first: PathSegment,
    pub rest: Vec<(ColonColon, PathSegment)>,
    pub trailing: Option<ColonColon>,
}

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]

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.

impl ResolveOwned for Path[src]

type Owned = Box<str>

The output type being resolved into.

impl Spanned for Path[src]

impl StructuralEq for Path[src]

impl StructuralPartialEq for Path[src]

impl ToTokens for Path[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]

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

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

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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.