Struct rune::ast::Label

source ·
#[non_exhaustive]
pub struct Label { pub span: Span, pub source: LitSource, }
Expand description

A label, like 'foo.

Custom labels are constructed in macros using MacroContext::label.

Examples

Constructing a label:

use rune::ast;
use rune::macros::MacroContext;

MacroContext::test(|ctx| {
    let lit = ctx.label("foo");
    assert!(matches!(lit, ast::Label { .. }))
});

Example labels:

use rune::{ast, testing};

testing::roundtrip::<ast::Label>("'foo");
testing::roundtrip::<ast::Label>("'barify42");

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§span: Span

The token of the label.

§source: LitSource

The source of the label.

Trait Implementations§

source§

impl Clone for Label

source§

fn clone(&self) -> Label

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Label

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Parse for Label

source§

fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>

Parse the current item from the parser.
source§

impl PartialEq<Label> for Label

source§

fn eq(&self, other: &Label) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Peek for Label

source§

fn peek(p: &mut Peeker<'_>) -> bool

Peek the parser for the given token.
source§

impl<'a> Resolve<'a> for Label

§

type Output = &'a str

The output type being resolved into.
source§

fn resolve(&self, ctx: ResolveContext<'a>) -> Result<&'a str, ResolveError>

Resolve the value from parsed AST.
source§

impl Spanned for Label

source§

fn span(&self) -> Span

Get the span of the type.
source§

impl ToTokens for Label

source§

fn to_tokens(&self, _: &mut MacroContext<'_>, stream: &mut TokenStream)

Turn the current item into tokens.
source§

impl Copy for Label

source§

impl Eq for Label

source§

impl StructuralEq for Label

source§

impl StructuralPartialEq for Label

Auto Trait Implementations§

§

impl RefUnwindSafe for Label

§

impl Send for Label

§

impl Sync for Label

§

impl Unpin for Label

§

impl UnwindSafe for Label

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more