use crate::situation::Horizon;
use crate::situation::Situation;
use crate::situation::WhatNow;
use crate::situation::flush;
use crate::situation::pop;
use crate::microparsers::predlen;
pub struct SitUntilByte {
pub until: u8,
pub color: u32,
}
impl Situation for SitUntilByte {
fn whatnow(&mut self, horizon: Horizon) -> WhatNow {
let len = predlen(|x| x != self.until, horizon.input);
if len < horizon.input.len() {
pop(len, 1, None)
} else {
flush(len)
}
}
fn get_color(&self) -> u32 {
self.color
}
}