[−][src]Struct syn_rsx::ParserConfig
Configures the Parser
behavior
Implementations
impl ParserConfig
[src]
pub fn new() -> ParserConfig
[src]
Create new ParserConfig
with default config
pub fn flat_tree(self) -> Self
[src]
Return flat tree instead of nested tree
pub fn number_of_top_level_nodes(self, number: usize) -> Self
[src]
Exact number of required top level nodes
pub fn type_of_top_level_nodes(self, node_type: NodeType) -> Self
[src]
Enforce the NodeType
of top level nodes
pub fn transform_block<F>(self, callback: F) -> Self where
F: Fn(ParseStream<'_>) -> Result<Option<TokenStream>> + 'static,
[src]
F: Fn(ParseStream<'_>) -> Result<Option<TokenStream>> + 'static,
Transforms the value
of all NodeType::Block
s with the given closure
callback. The provided ParseStream
is the content of the block.
When Some(TokenStream)
is returned, the TokenStream
is parsed as
Rust block content. The ParseStream
must be completely consumed in
this case (no tokens left).
If None
is returned, the ParseStream
is parsed as Rust block
content. The ParseStream
isn't forked, so partial parsing inside the
transform callback will break this mechanism - fork if you want to avoid
breaking.
An example usage might be a custom syntax inside blocks which isn't
valid Rust. The given example simply translates the %
character into
the string percent
use quote::quote; use syn::Token; use syn_rsx::{parse2_with_config, ParserConfig}; let tokens = quote! { <div>{%}</div> }; let config = ParserConfig::new().transform_block(|input| { input.parse::<Token![%]>()?; Ok(Some(quote! { "percent" })) }); parse2_with_config(tokens, config).unwrap();
Trait Implementations
impl Default for ParserConfig
[src]
pub fn default() -> ParserConfig
[src]
Auto Trait Implementations
impl !RefUnwindSafe for ParserConfig
[src]
impl !Send for ParserConfig
[src]
impl !Sync for ParserConfig
[src]
impl Unpin for ParserConfig
[src]
impl !UnwindSafe for ParserConfig
[src]
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, 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>,