1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use crate::lexer::*; use crate::maybe_byte::*; pub trait TokAdd<T> { fn tokadd(&mut self, c: T); } impl TokAdd<&MaybeByte> for Lexer { fn tokadd(&mut self, c: &MaybeByte) { match c { MaybeByte::Some(c) => self.tokadd(*c), MaybeByte::EndOfInput => panic!("can't emit EOF"), } } } impl TokAdd<u8> for Lexer { fn tokadd(&mut self, c: u8) { self.tokenbuf.push(c) } }