Diffstat (limited to 'src/walk/walkers/owned.rs')
| -rw-r--r-- | src/walk/walkers/owned.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/walk/walkers/owned.rs b/src/walk/walkers/owned.rs deleted file mode 100644 index 6703625..0000000 --- a/src/walk/walkers/owned.rs +++ /dev/null @@ -1,41 +0,0 @@ -use crate::{ - build::protocols, - protocol::{Implementer, ImplementerExt, ProtocolExt}, - Walker, -}; - -use super::MissingProtocol; - -pub struct OwnedWalker<T> { - value: T, -} - -impl<T> OwnedWalker<T> { - pub const fn new(value: T) -> Self { - Self { value } - } -} - -impl<T> From<T> for OwnedWalker<T> { - fn from(value: T) -> Self { - Self::new(value) - } -} - -impl<'ctx, T: 'static> Walker<'ctx> for OwnedWalker<T> { - type Error = (MissingProtocol, T); - - type Value = (); - - fn walk(self, visitor: &mut dyn Implementer<'ctx>) -> Result<Self::Value, Self::Error> { - if let Some(interface) = visitor.interface_for::<protocols::owned::Owned<T>>() { - let _ = interface.as_object().visit(self.value); - Ok(()) - } else { - Err(( - MissingProtocol(protocols::owned::Owned::<T>::id()), - self.value, - )) - } - } -} |