From fdd527e99604b53d5685352e134c41ed5fcc96db Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Wed, 7 Feb 2018 14:47:08 +0300 Subject: [PATCH] ok_or_else in stack + top_mut. --- src/common/stack.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/common/stack.rs b/src/common/stack.rs index d4d1bf3..fc1e289 100644 --- a/src/common/stack.rs +++ b/src/common/stack.rs @@ -50,7 +50,13 @@ impl StackWithLimit where T: Clone { pub fn top(&self) -> Result<&T, Error> { self.values .back() - .ok_or(Error("non-empty stack expected".into())) + .ok_or_else(|| Error("non-empty stack expected".into())) + } + + pub fn top_mut(&mut self) -> Result<&mut T, Error> { + self.values + .back_mut() + .ok_or_else(|| Error("non-empty stack expected".into())) } pub fn get(&self, index: usize) -> Result<&T, Error> { @@ -73,7 +79,7 @@ impl StackWithLimit where T: Clone { pub fn pop(&mut self) -> Result { self.values .pop_back() - .ok_or(Error("non-empty stack expected".into())) + .ok_or_else(|| Error("non-empty stack expected".into())) } pub fn resize(&mut self, new_size: usize, dummy: T) {