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> {