Macro synom::separated_nonempty_list
[−]
[src]
macro_rules! separated_nonempty_list { ($i:expr, $sep:ident!( $($args:tt)* ), $submac:ident!( $($args2:tt)* )) => { ... }; ($i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => { ... }; ($i:expr, $f:expr, $submac:ident!( $($args:tt)* )) => { ... }; ($i:expr, $f:expr, $g:expr) => { ... }; }
One or more values separated by some separator. Does not allow a trailing separator.
- Syntax:
separated_nonempty_list!(SEPARATOR, THING)
- Output:
Vec<THING>
You may also be looking for:
separated_list!
- one or more valuesterminated_list!
- zero or more, allows trailing separatormany0!
- zero or more, no separator
extern crate syn; #[macro_use] extern crate synom; use syn::Ty; use syn::parse::ty; // One or more Rust types separated by commas. named!(comma_separated_types -> Vec<Ty>, separated_nonempty_list!(punct!(","), ty) ); fn main() { let input = "&str, Map<K, V>, String"; let parsed = comma_separated_types(input).expect("comma-separated types"); assert_eq!(parsed.len(), 3); println!("{:?}", parsed); }