1
Fork 0

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

View file

@ -32,11 +32,6 @@ impl<T> RingBuffer<T> {
index index
} }
pub fn advance_left(&mut self) {
self.data.pop_front().unwrap();
self.offset += 1;
}
pub fn clear(&mut self) { pub fn clear(&mut self) {
self.data.clear(); self.data.clear();
} }
@ -53,6 +48,12 @@ impl<T> RingBuffer<T> {
self.data.front_mut() 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> { pub fn last(&self) -> Option<&T> {
self.data.back() self.data.back()
} }