use effectful::{ bound::{Bool, DynBind, IsSend, IsSync, No, SsBound}, effective::{Canonical, Effective}, environment::Environment, forward_send_sync, higher_ranked::WithLt, is_not_send_sync, }; use mockall::mock; use treaty::{ any::{trait_by_id, type_name, AnyTrait, MutAnyUnsized, WithLtTypeId}, protocol::{ visitor::VisitResult, walker::hint::{DynVisitorWith, Hint, HintMeta}, DynVisitor, }, Flow, }; pub type KnownFactory
= for<'a, 'ctx> fn( &'ctx (), &'a WithLt<'a,
::Hint>,
) -> Result ;
}
}
is_not_send_sync! {
{P: (?Sized + HintMeta)} MockHintWalker
where {
for<'r> WithLt<'r, P::Hint>: Sized
},
}
impl<'src, P: ?Sized + HintMeta> AnyTrait<'src> for MockHintWalker
where
P::Env: SsBound );
});
None
}
}
// any_trait! {
// impl['ctx, P][E] MockHintWalker = [
// HintProto
// ] where
// E: Environment,
// P: HintMeta
where
P::Env: SsBound ::Hint>,
) -> Canonical<'r, VisitResult, ::Env> {
P::Env::value(self.hint(visitor, hint)).cast()
}
fn known<'a>(
&'a mut self,
hint: &'a WithLt<'a, ::Hint>,
) -> Canonical<'a, Result ::Env> {
todo!()
}
// fn hint<'this, 'visitor, 'hint, 'e>(
// &'this mut self,
// visitor: DynVisitorWith<'visitor, 'ctx, P>,
// hint: WithLt<'hint, P>,
// ) -> Canonical<'e, VisitResult, P::Effect>
// where
// 'ctx: 'this + 'visitor + 'hint + 'e,
// {
// P::Effect::value(self.hint(visitor, hint)).cast()
// }
//
// fn known<'a>(
// &'a mut self,
// hint: &'a WithLt<'a, P::Hint>,
// ) -> Canonical<'a, Result