is_tree/traits/
knows_visitor.rs

1//! This module defines the `KnowsVisitor` trait, which is used to define the associated type `Visitor` for a tree node.
2
3
4//! A trait for objects that know their visitor.
5pub trait KnowsVisitor {
6    /// The visitor type.
7    type Visitor;
8    type VisitorMut;
9}
10
11impl<T> KnowsVisitor for Box<T>
12where
13    T: KnowsVisitor,
14{
15    type Visitor = T::Visitor;
16    type VisitorMut = T::VisitorMut;
17}
18
19impl<T> KnowsVisitor for &T
20where
21    T: KnowsVisitor,
22{
23    type Visitor = T::Visitor;
24    type VisitorMut = T::VisitorMut;
25}
26
27impl<T> KnowsVisitor for &mut T
28where
29    T: KnowsVisitor,
30{
31    type Visitor = T::Visitor;
32    type VisitorMut = T::VisitorMut;
33}