From 5fe10fe0022fa025082c7794829b447d726df005 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 2 May 2017 21:44:01 -0700 Subject: [PATCH] Simplify the resume check -- just use an if --- lexer/src/lib.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lexer/src/lib.rs b/lexer/src/lib.rs index 0d2a0c0..b3d66ef 100644 --- a/lexer/src/lib.rs +++ b/lexer/src/lib.rs @@ -4,11 +4,13 @@ use std::iter::Peekable; -#[derive(Debug)] +#[derive(Debug, Eq, PartialEq)] pub enum Token { LeftParen, RightParen, Id(String), } +#[derive(Debug, Eq, PartialEq)] enum Resume { Here, AtNext } +#[derive(Debug, Eq, PartialEq)] enum IterationResult { Continue, Emit(Token, Resume), @@ -65,10 +67,9 @@ impl Iterator for Lexer where T: Iterator { match result { IterationResult::Continue => self.input.next(), IterationResult::Emit(token, resume) => { - match resume { - Resume::AtNext => self.input.next(), - Resume::Here => None, - }; + if resume == Resume::AtNext { + self.input.next(); + } return Some(Ok(token)) }, IterationResult::Error(msg) => return Some(Err(msg)),