pub type Many<T> = Punctuated<T, NotEof>;
Expand description
A convenience type alias for parsing several repeated items with no separator in between.
#[derive(PartialEq, Eq, Debug, Parse, ToTokens)]
struct KeyValue {
key: Ident,
arrow: token::RArrow,
value: Lit,
}
let items: Many<KeyValue> = parse_quote!{
key_one -> 678
no_2 -> 2.718
third -> false
};
let actual: Vec<KeyValue> = items.into_iter().collect();
let expected = vec![
KeyValue {
key: ident("key_one"),
arrow: Default::default(),
value: Lit::from(678_u128),
},
KeyValue {
key: ident("no_2"),
arrow: Default::default(),
value: Lit::try_from(2.718).unwrap(),
},
KeyValue {
key: ident("third"),
arrow: Default::default(),
value: Lit::from(false),
},
];
assert_eq!(actual, expected);