Trait rune::Parse [−][src]
The parse trait, implemented by items that can be parsed.
Required methods
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
Parse the current item from the parser.
Implementations on Foreign Types
impl<A, B> Parse for (A, B) where
A: Parse + Peek,
B: Parse,
[src]
A: Parse + Peek,
B: Parse,
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T> Parse for Option<T> where
T: Parse + Peek,
[src]
T: Parse + Peek,
Parse implementation for something that can be optionally parsed.
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T> Parse for Box<T> where
T: Parse,
[src]
T: Parse,
Parse implementation for something that is boxed.
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T> Parse for Vec<T> where
T: Parse + Peek,
[src]
T: Parse + Peek,
Parser implementation for a vector.
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
Implementors
impl Parse for Condition
[src]
Parse a condition.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Condition>("true"); testing::roundtrip::<ast::Condition>("let [a, ..] = v");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Expr
[src]
Parsing a block expression.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Expr>("()"); testing::roundtrip::<ast::Expr>("foo[\"foo\"]"); testing::roundtrip::<ast::Expr>("foo.bar()"); testing::roundtrip::<ast::Expr>("var()"); testing::roundtrip::<ast::Expr>("var"); testing::roundtrip::<ast::Expr>("42"); testing::roundtrip::<ast::Expr>("1 + 2 / 3 - 4 * 1"); testing::roundtrip::<ast::Expr>("foo[\"bar\"]"); testing::roundtrip::<ast::Expr>("let var = 42"); testing::roundtrip::<ast::Expr>("let var = \"foo bar\""); testing::roundtrip::<ast::Expr>("var[\"foo\"] = \"bar\""); testing::roundtrip::<ast::Expr>("let var = objects[\"foo\"] + 1"); testing::roundtrip::<ast::Expr>("var = 42"); let expr = testing::roundtrip::<ast::Expr>(r#" if 1 { } else { if 2 { } else { } } "#); assert!(matches!(expr, ast::Expr::If(..))); // Chained function calls. testing::roundtrip::<ast::Expr>("foo.bar.baz()"); testing::roundtrip::<ast::Expr>("foo[0][1][2]"); testing::roundtrip::<ast::Expr>("foo.bar()[0].baz()[1]"); testing::roundtrip::<ast::Expr>("42 is int::int"); testing::roundtrip::<ast::Expr>("{ let x = 1; x }"); let expr = testing::roundtrip::<ast::Expr>("#[cfg(debug_assertions)] { assert_eq(x, 32); }"); assert!(matches!(expr, ast::Expr::Block(b) if b.attributes.len() == 1 && b.block.statements.len() == 1)); testing::roundtrip::<ast::Expr>("#{\"foo\": b\"bar\"}"); testing::roundtrip::<ast::Expr>("Disco {\"never_died\": true }"); testing::roundtrip::<ast::Expr>("(false, 1, 'n')"); testing::roundtrip::<ast::Expr>("[false, 1, 'b']");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprBreakValue
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprRangeLimits
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprSelectBranch
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for FnArg
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Item
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemModBody
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemOrExpr
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemStructBody
[src]
Parse implementation for a struct body.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::ItemStructBody>(""); testing::roundtrip::<ast::ItemStructBody>("{ a, b, c }"); testing::roundtrip::<ast::ItemStructBody>("{ #[x] a, #[y] b, #[z] #[w] #[f32] c }"); testing::roundtrip::<ast::ItemStructBody>("{ a, #[attribute] b, c }"); testing::roundtrip::<ast::ItemStructBody>("( a, b, c )"); testing::roundtrip::<ast::ItemStructBody>("( #[x] a, b, c )"); testing::roundtrip::<ast::ItemStructBody>("( #[x] pub a, b, c )"); testing::roundtrip::<ast::ItemStructBody>("( a, b, c )"); testing::roundtrip::<ast::ItemStructBody>("()");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemUseSegment
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemVariantBody
[src]
Parse implementation for a struct body.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::ItemVariantBody>("( a, b, c )"); testing::roundtrip::<ast::ItemVariantBody>("{ a, b, c }"); testing::roundtrip::<ast::ItemVariantBody>("( #[serde(default)] a, b, c )"); testing::roundtrip::<ast::ItemVariantBody>("{ a, #[debug(skip)] b, c }");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Lit
[src]
Parsing a Lit
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Lit>("true"); testing::roundtrip::<ast::Lit>("false"); testing::roundtrip::<ast::Lit>("'🔥'"); testing::roundtrip::<ast::Lit>("b'4'"); testing::roundtrip::<ast::Lit>("b\"bytes\""); testing::roundtrip::<ast::Lit>("1.2"); testing::roundtrip::<ast::Lit>("42"); testing::roundtrip::<ast::Lit>("\"mary had a little lamb\"");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ObjectIdent
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ObjectKey
[src]
Parse an object literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::ObjectKey>("foo"); testing::roundtrip::<ast::ObjectKey>("\"foo \\n bar\"");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Pat
[src]
Parsing a block expression.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Pat>("()"); testing::roundtrip::<ast::Pat>("42"); testing::roundtrip::<ast::Pat>("-42"); testing::roundtrip::<ast::Pat>("3.1415"); testing::roundtrip::<ast::Pat>("-3.1415"); testing::roundtrip::<ast::Pat>("b'a'"); testing::roundtrip::<ast::Pat>("'a'"); testing::roundtrip::<ast::Pat>("b\"hello world\""); testing::roundtrip::<ast::Pat>("\"hello world\""); testing::roundtrip::<ast::Pat>("var"); testing::roundtrip::<ast::Pat>("_"); testing::roundtrip::<ast::Pat>("Foo(n)");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PathSegment
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Stmt
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Visibility
[src]
Parsing Visibility specifiers
Examples
use rune::{testing, ast}; assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub"), ast::Visibility::Public(_) }); assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub (in a::b::c)"), ast::Visibility::In(_) }); assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub(in crate::x::y::z)"), ast::Visibility::In(_) }); assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub(super)"), ast::Visibility::Super(_) }); assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub(crate)"), ast::Visibility::Crate(_) }); assert!(matches!{ testing::roundtrip::<ast::Visibility>("pub(self)"), ast::Visibility::SelfValue(_) });
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Abstract
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for AlignOf
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Amp
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for AmpAmp
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for AmpEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Arrow
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for As
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Async
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for At
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Await
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Bang
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for BangEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Become
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Break
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Caret
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for CaretEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Colon
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ColonColon
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Comma
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Const
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Continue
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Crate
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Dash
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for DashEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Default
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Div
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Do
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Dollar
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Dot
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for DotDot
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for DotDotEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Else
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Enum
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Eq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for EqEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Extern
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for False
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Final
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Fn
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for For
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Gt
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for GtEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for GtGt
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for GtGtEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for If
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Impl
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for In
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Is
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Let
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Loop
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Lt
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LtEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LtLt
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LtLtEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Macro
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Match
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Mod
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Move
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Not
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for OffsetOf
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Override
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Perc
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PercEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Pipe
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PipeEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PipePipe
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Plus
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PlusEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Pound
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Priv
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Proc
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Pub
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Pure
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for QuestionMark
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Ref
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Return
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Rocket
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Select
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for SelfType
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for SelfValue
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for SemiColon
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for SizeOf
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for SlashEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Star
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for StarEq
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Static
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Struct
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Super
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Tilde
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for True
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for TypeOf
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Underscore
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Unsafe
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Use
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Virtual
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for While
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Yield
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Attribute
[src]
Parsing an Attribute
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::Attribute>("#[foo = \"foo\"]"); testing::roundtrip::<ast::Attribute>("#[foo()]"); testing::roundtrip::<ast::Attribute>("#![foo]"); testing::roundtrip::<ast::Attribute>("#![cfg(all(feature = \"potato\"))]"); testing::roundtrip::<ast::Attribute>("#[x+1]");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Block
[src]
Parse implementation for a block.
Examples
use rune::{testing, ast}; let block = testing::roundtrip::<ast::Block>("{}"); assert_eq!(block.statements.len(), 0); assert!(block.produces_nothing()); let block = testing::roundtrip::<ast::Block>("{ foo }"); assert_eq!(block.statements.len(), 1); assert!(!block.produces_nothing()); let block = testing::roundtrip::<ast::Block>("{ foo; }"); assert_eq!(block.statements.len(), 1); assert!(block.produces_nothing()); let block = testing::roundtrip::<ast::Block>(r#" { let foo = 42; let bar = "string"; baz } "#); assert_eq!(block.statements.len(), 3);
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for CloseBrace
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for CloseBracket
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for CloseParen
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprAssign
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprAwait
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprBinary
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprBlock
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprBreak
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprCall
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprClosure
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprContinue
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprElse
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprElseIf
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprFieldAccess
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprFor
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprGroup
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprIf
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprIndex
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprLet
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprLit
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprLoop
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprMatch
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprMatchBranch
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprObject
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprRange
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprReturn
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprSelect
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprTry
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprTuple
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprUnary
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprVec
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprWhile
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprWithoutBinary
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ExprYield
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Field
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for FieldAssign
[src]
Parse an object literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::FieldAssign>("\"foo\": 42"); testing::roundtrip::<ast::FieldAssign>("\"foo\": 42"); testing::roundtrip::<ast::FieldAssign>("\"foo\": 42");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for File
[src]
Parse a file.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::File>(r#" use foo; fn foo() { 42 } use bar; fn bar(a, b) { a } "#);
Realistic Example
use rune::{testing, ast}; testing::roundtrip::<ast::File>(r#" use http; fn main() { let client = http::client(); let response = client.get("https://google.com"); let text = response.text(); } "#);
File Attributes Example
use rune::{testing, ast}; testing::roundtrip::<ast::File>(r#" // NB: Attributes are currently rejected by the compiler #![feature(attributes)] fn main() { for x in [1,2,3,4,5,6] { println(`{x}`) } } "#);
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Ident
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemConst
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemEnum
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemFn
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemImpl
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemMod
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemStruct
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemUse
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemUsePath
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for ItemVariant
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Label
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitBool
[src]
Parsing a unit literal
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitBool>("true"); testing::roundtrip::<ast::LitBool>("false");
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitByte
[src]
Parse a byte literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitByte>("b'a'"); testing::roundtrip::<ast::LitByte>("b'\\0'"); testing::roundtrip::<ast::LitByte>("b'\\n'"); testing::roundtrip::<ast::LitByte>("b'\\r'"); testing::roundtrip::<ast::LitByte>("b'\\\\''");
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitByteStr
[src]
Parse a string literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitByteStr>("b\"hello world\""); testing::roundtrip::<ast::LitByteStr>("b\"hello\\nworld\"");
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitChar
[src]
Parse a character literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitChar>("'a'"); testing::roundtrip::<ast::LitChar>("'\\0'"); testing::roundtrip::<ast::LitChar>("'\\n'"); testing::roundtrip::<ast::LitChar>("'\\r'"); testing::roundtrip::<ast::LitChar>("'\\''");
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitNumber
[src]
Parse a number literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitNumber>("42"); testing::roundtrip::<ast::LitNumber>("42.42"); testing::roundtrip::<ast::LitNumber>("0.42"); testing::roundtrip::<ast::LitNumber>("0.42e10");
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for LitStr
[src]
Parse a string literal.
Examples
use rune::{testing, ast}; testing::roundtrip::<ast::LitStr>("\"hello world\""); testing::roundtrip::<ast::LitStr>("\"hello\\nworld\"");
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Local
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for MacroCall
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for OpenBrace
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for OpenBracket
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for OpenParen
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for PatBinding
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for Path
[src]
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl Parse for FormatArgs
[src]
fn parse(p: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
Parse format arguments inside of a macro.
impl<T, S> Parse for AngleBracketed<T, S> where
T: Parse,
S: Peek + Parse,
[src]
T: Parse,
S: Peek + Parse,
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T, S> Parse for Braced<T, S> where
T: Parse,
S: Peek + Parse,
[src]
T: Parse,
S: Peek + Parse,
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T, S> Parse for Bracketed<T, S> where
T: Parse,
S: Peek + Parse,
[src]
T: Parse,
S: Peek + Parse,
fn parse(parser: &mut Parser<'_>) -> Result<Self, ParseError>
[src]
impl<T, S> Parse for Parenthesized<T, S> where
T: Parse,
S: Peek + Parse,
[src]
T: Parse,
S: Peek + Parse,