dope_manifold/client/session/policy/
start.rs1use dope_core::{
2 driver,
3 driver::route::{Identity, KeyTag},
4};
5use dope_net::wire::{self, failure, open};
6
7use crate::client::attempt;
8
9pub trait Sink<
11 'w,
12 'd,
13 W: wire::Spec<OpenFailure = M> + 'w,
14 ID: Identity = KeyTag<0>,
15 M = <W as wire::Spec>::OpenFailure,
16>
17{
18 fn fail(
19 &self,
20 attempt: attempt::Completion<'_, 'd, ID>,
21 cause: open::Error<'w, W>,
22 driver: &mut driver::Context<'_, 'd>,
23 );
24}
25
26impl<'w, 'd, W, P: ?Sized, ID: Identity> Sink<'w, 'd, W, ID, failure::Never> for P
27where
28 W: wire::Spec<OpenFailure = failure::Never> + 'w,
29{
30 fn fail(
31 &self,
32 _: attempt::Completion<'_, 'd, ID>,
33 cause: open::Error<'w, W>,
34 _: &mut driver::Context<'_, 'd>,
35 ) {
36 cause.eliminate()
37 }
38}