1
0
Fork 0
forked from wry/wry

wire: split messages into requests and events

This commit is contained in:
Julian Orth 2024-04-08 11:56:26 +02:00
parent 2b35f30ed4
commit c473d63df3
98 changed files with 495 additions and 486 deletions

View file

@ -243,12 +243,21 @@ struct Parser<'a> {
impl<'a> Parser<'a> {
fn parse(&mut self) -> Result<Vec<Lined<Message>>> {
let mut res = vec![];
let mut requests = 0;
let mut events = 0;
while !self.eof() {
let (line, ty) = self.expect_ident()?;
match ty.as_bytes() {
b"msg" => res.push(self.parse_message()?),
let num = match ty.as_bytes() {
b"request" => &mut requests,
b"event" => &mut events,
_ => bail!("In line {}: Unexpected entry {:?}", line, ty),
};
let msg = self.parse_message()?;
if msg.val.id.val != *num {
bail!("{} != {}", msg.val.id.val, *num);
}
*num += 1;
res.push(msg);
}
Ok(res)
}