Function list
Source pub fn list<'a, I, O, U>(
parser: Parser<'a, I, O>,
separator: Parser<'a, I, U>,
) -> Parser<'a, I, Vec<O>>where
O: 'a,
U: 'a,
Expand description
76fn mylang<'a>() -> Parser<'a, u8, Vec<Container>> {
77 (
78 whitespace() *
79 list(
80 call(container),
81 whitespace()
82 )
83 )
84}
More examples
Hide additional examples
59fn array<'a>() -> Parser<'a, char, Vec<JsonValue>> {
60 let elems = list(call(value), sym(',') * space());
61 sym('[') * space() * elems - sym(']')
62}
63
64fn object<'a>() -> Parser<'a, char, HashMap<String, JsonValue>> {
65 let member = string() - space() - sym(':') - space() + call(value);
66 let members = list(member, sym(',') * space());
67 let obj = sym('{') * space() * members - sym('}');
68 obj.map(|members| members.into_iter().collect::<HashMap<_, _>>())
69}
42fn array<'a>() -> Parser<'a, u8, Vec<JsonValue>> {
43 let elems = list(call(value), sym(b',') * space());
44 sym(b'[') * space() * elems - sym(b']')
45}
46
47fn object<'a>() -> Parser<'a, u8, HashMap<String, JsonValue>> {
48 let member = string() - space() - sym(b':') - space() + call(value);
49 let members = list(member, sym(b',') * space());
50 let obj = sym(b'{') * space() * members - sym(b'}');
51 obj.map(|members| members.into_iter().collect::<HashMap<_, _>>())
52}