1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pub mod protocols; pub mod walkers; use crate::protocol::Implementer; pub trait Walk<'ctx>: Sized { type Walker: Walker<'ctx> + From<Self>; } pub trait Walker<'ctx> { type Error; type Value; fn walk(self, visitor: &mut dyn Implementer<'ctx>) -> Result<Self::Value, Self::Error>; }