#![allow(clippy::module_inception)]
use crate::{Many, Result};
use super::{MoveMut, MoveRef};
pub trait Move<'owner>: MoveRef<'owner> + MoveMut<'owner> {}
impl<'owner, T> Move<'owner> for T where T: ?Sized + MoveRef<'owner> + MoveMut<'owner> {}
impl<'owner, T, K> Many<'owner, K> for T
where
T: ?Sized + Move<'owner>,
{
type Ref = <Self as MoveRef<'owner>>::Ref;
fn try_move_ref(&mut self, _: K) -> Result<Self::Ref> {
MoveRef::move_ref(self)
}
type Mut = <Self as MoveMut<'owner>>::Mut;
fn try_move_mut(&mut self, _: K) -> Result<Self::Mut> {
MoveMut::move_mut(self)
}
}