diff --git a/traversable/src/combinator.rs b/traversable/src/combinator.rs index 8ddf897..449ebee 100644 --- a/traversable/src/combinator.rs +++ b/traversable/src/combinator.rs @@ -69,16 +69,16 @@ pub trait VisitorExt: Visitor { /// }); /// /// // v1 runs first, then v2. - /// let mut combined = v1.or(v2); + /// let mut combined = v1.chain(v2); /// data.traverse(&mut combined); /// # } /// ``` - fn or(self, other: V) -> OrVisitor + fn chain(self, other: V) -> Chain where Self: Sized, V: Visitor, { - OrVisitor { + Chain { visitor1: self, visitor2: other, } @@ -136,19 +136,19 @@ pub trait VisitorMutExt: VisitorMut { /// ControlFlow::<()>::Continue(()) /// }); /// - /// let mut combined = v1.or(v2); + /// let mut combined = v1.chain(v2); /// data.traverse_mut(&mut combined); /// /// assert_eq!(data.foo.0, 2); /// assert_eq!(data.bar.0, 4); /// # } /// ``` - fn or(self, other: V) -> OrVisitor + fn chain(self, other: V) -> Chain where Self: Sized, V: VisitorMut, { - OrVisitor { + Chain { visitor1: self, visitor2: other, } @@ -159,14 +159,13 @@ impl VisitorMutExt for V {} /// A visitor that runs two visitors in sequence. /// -/// This struct is created by the [`or`](VisitorExt::or) method on [`VisitorExt`] or -/// [`VisitorMutExt`]. -pub struct OrVisitor { +/// This struct is created by [`VisitorExt::chain`] or [`VisitorMutExt::chain`]. +pub struct Chain { visitor1: V1, visitor2: V2, } -impl Visitor for OrVisitor +impl Visitor for Chain where V1: Visitor, V2: Visitor, @@ -184,7 +183,7 @@ where } } -impl VisitorMut for OrVisitor +impl VisitorMut for Chain where V1: VisitorMut, V2: VisitorMut, diff --git a/traversable/tests/test_combinator.rs b/traversable/tests/test_combinator.rs index f53125c..16ffe27 100644 --- a/traversable/tests/test_combinator.rs +++ b/traversable/tests/test_combinator.rs @@ -86,7 +86,7 @@ fn test_visitor_or() { break_on: None, }; - let mut combined = v1.or(v2); + let mut combined = v1.chain(v2); let result = data.traverse(&mut combined); assert!(result.is_continue()); @@ -126,7 +126,7 @@ fn test_visitor_or_break_v1() { break_on: None, }; - let mut combined = v1.or(v2); + let mut combined = v1.chain(v2); let result = data.traverse(&mut combined); assert_eq!(result, ControlFlow::Break(2)); @@ -161,7 +161,7 @@ fn test_visitor_or_break_v2() { break_on: Some(2), }; - let mut combined = v1.or(v2); + let mut combined = v1.chain(v2); let result = data.traverse(&mut combined); assert_eq!(result, ControlFlow::Break(2)); @@ -201,7 +201,7 @@ fn test_visitor_mut_or() { let v1 = MutVisitor { val_multiplier: 2 }; let v2 = MutVisitor { val_multiplier: 3 }; - let mut combined = v1.or(v2); + let mut combined = v1.chain(v2); let result = data.traverse_mut(&mut combined); assert!(result.is_continue());