Simplify ParseBuffer::step
diff --git a/src/parse.rs b/src/parse.rs
index 036a8ed..05d9261 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -286,17 +286,13 @@
where
F: for<'c> FnOnce(StepCursor<'c, 'a>) -> Result<(R, Cursor<'c>)>,
{
- match function(StepCursor {
+ let (node, rest) = function(StepCursor {
scope: self.scope,
cursor: self.cell.get(),
marker: PhantomData,
- }) {
- Ok((ret, cursor)) => {
- self.cell.set(cursor);
- Ok(ret)
- }
- Err(err) => Err(err),
- }
+ })?;
+ self.cell.set(rest);
+ Ok(node)
}
pub fn cursor(&self) -> Cursor<'a> {