Eliminate a token clone from advance_left

This commit is contained in:
David Tolnay 2022-01-19 18:35:02 -08:00
parent d81740ed2a
commit d981c5b354
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 7 additions and 7 deletions

View File

@ -319,7 +319,7 @@ impl Printer {
let mut left_size = self.buf.first().unwrap().size;
while left_size >= 0 {
let left = self.buf.first().unwrap().token.clone();
let left = self.buf.pop_first().unwrap().token;
let len = match left {
Token::Break(b) => b.blank_space,
@ -335,7 +335,6 @@ impl Printer {
self.left_total += len;
self.buf.advance_left();
if self.buf.is_empty() {
break;
}

View File

@ -32,11 +32,6 @@ impl<T> RingBuffer<T> {
index
}
pub fn advance_left(&mut self) {
self.data.pop_front().unwrap();
self.offset += 1;
}
pub fn clear(&mut self) {
self.data.clear();
}
@ -53,6 +48,12 @@ impl<T> RingBuffer<T> {
self.data.front_mut()
}
pub fn pop_first(&mut self) -> Option<T> {
let first = self.data.pop_front()?;
self.offset += 1;
Some(first)
}
pub fn last(&self) -> Option<&T> {
self.data.back()
}