Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![allow(unused_variables)]
- #![allow(unused_must_use)]
- use syn::{parse_str, parenthesized, bracketed, braced};
- use syn::parse::{Parse, ParseStream, Result};
- #[derive(Debug)] struct A {}
- #[derive(Debug)] struct B {}
- #[derive(Debug)] struct C {}
- impl Parse for A {
- fn parse(input: ParseStream) -> Result<A> {
- let content;
- parenthesized!(content in input);
- Ok(A {})
- }
- }
- impl Parse for B {
- fn parse(input: ParseStream) -> Result<B> {
- let content;
- bracketed!(content in input);
- Ok(B {})
- }
- }
- impl Parse for C {
- fn parse(input: ParseStream) -> Result<C> {
- let content;
- braced!(content in input);
- Ok(C {})
- }
- }
- fn main() {
- dbg!(parse_str::<A>(""));
- dbg!(parse_str::<A>("()"));
- dbg!(parse_str::<A>("( )"));
- dbg!(parse_str::<A>("(1)"));
- dbg!(parse_str::<A>("(a)"));
- dbg!(parse_str::<A>("(\"string\")"));
- dbg!(parse_str::<B>(""));
- dbg!(parse_str::<B>("[]"));
- dbg!(parse_str::<B>("[ ]"));
- dbg!(parse_str::<B>("[1]"));
- dbg!(parse_str::<B>("[a]"));
- dbg!(parse_str::<B>("[\"string\"]"));
- dbg!(parse_str::<C>(""));
- dbg!(parse_str::<C>("{}"));
- dbg!(parse_str::<C>("{ }"));
- dbg!(parse_str::<C>("{1}"));
- dbg!(parse_str::<C>("{a}"));
- dbg!(parse_str::<C>("{\"string\"}"));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement