use crate::Item;
pub struct ItemRef<'a> {
item: &'a Item,
consumed: bool,
}
impl<'a> ItemRef<'a> {
pub fn new(item: &'a Item) -> Self {
Self {
item,
consumed: false,
}
}
pub fn consume(&mut self) {
self.consumed = true;
}
pub fn restore(&mut self) {
self.consumed = false;
}
pub fn consumed(&self) -> bool {
self.consumed
}
pub fn as_str(&self) -> &str {
self.item.as_str()
}
}