Diffstat (limited to 'src/impls/core/str.rs')
-rw-r--r--src/impls/core/str.rs45
1 files changed, 17 insertions, 28 deletions
diff --git a/src/impls/core/str.rs b/src/impls/core/str.rs
index e09b219..0ff2de8 100644
--- a/src/impls/core/str.rs
+++ b/src/impls/core/str.rs
@@ -1,4 +1,8 @@
-use crate::{walk::{Walk, WalkOnce, WalkMut}, protocol::VisitorMissingProtocol, Walker, Visitor};
+use crate::{
+ protocol::VisitorMissingProtocol,
+ walk::{Walk, WalkMut, WalkOnce},
+ Visitor, Walker,
+};
use super::{reference::RefWalker, reference_mut::MutWalker};
@@ -15,7 +19,10 @@ impl<'ctx> WalkOnce<'ctx> for &'ctx str {
impl<'borrow, 'ctx> WalkMut<'borrow, 'ctx> for &'ctx str {
#[inline]
- fn walk_mut(&'borrow mut self, visitor: &mut dyn Visitor<'ctx>) -> Result<Self::Value, Self::Error> {
+ fn walk_mut(
+ &'borrow mut self,
+ visitor: &mut dyn Visitor<'ctx>,
+ ) -> Result<Self::Value, Self::Error> {
self.walk(visitor)
}
}
@@ -23,12 +30,7 @@ impl<'borrow, 'ctx> WalkMut<'borrow, 'ctx> for &'ctx str {
impl<'borrow, 'ctx> Walk<'borrow, 'ctx> for &'ctx str {
#[inline]
fn walk(&'borrow self, visitor: &mut dyn Visitor<'ctx>) -> Result<Self::Value, Self::Error> {
- let mut walker = RefWalker::new(*self);
- let _ = walker.walk(visitor);
- match walker.into_error() {
- Some(err) => Err(err),
- None => Ok(()),
- }
+ RefWalker::new(*self).walk_once(visitor)
}
}
@@ -39,36 +41,23 @@ impl<'ctx> WalkOnce<'ctx> for &'ctx mut str {
#[inline]
fn walk_once(self, visitor: &mut dyn Visitor<'ctx>) -> Result<Self::Value, Self::Error> {
- let mut walker = MutWalker::new(self);
- let _ = walker.walk(visitor);
- match walker.into_error() {
- Some(err) => Err(err),
- None => Ok(()),
- }
+ MutWalker::new(self).walk_once(visitor)
}
}
impl<'ctx> WalkMut<'ctx, 'ctx> for &'ctx mut str {
#[inline]
- fn walk_mut(&'ctx mut self, visitor: &mut dyn Visitor<'ctx>) -> Result<Self::Value, Self::Error> {
- let mut walker = MutWalker::new(*self);
- let _ = walker.walk(visitor);
- match walker.into_error() {
- Some(err) => Err(err),
- None => Ok(()),
- }
+ fn walk_mut(
+ &'ctx mut self,
+ visitor: &mut dyn Visitor<'ctx>,
+ ) -> Result<Self::Value, Self::Error> {
+ MutWalker::new(*self).walk_once(visitor)
}
}
impl<'ctx> Walk<'ctx, 'ctx> for &'ctx mut str {
#[inline]
fn walk(&'ctx self, visitor: &mut dyn Visitor<'ctx>) -> Result<Self::Value, Self::Error> {
- let mut walker = RefWalker::new(*self);
- let _ = walker.walk(visitor);
- match walker.into_error() {
- Some(err) => Err(err),
- None => Ok(()),
- }
+ RefWalker::new(*self).walk_once(visitor)
}
}
-