hypershell_components/providers/
use.rs1use core::marker::PhantomData;
2
3use cgp::extra::handler::{Handler, HandlerComponent};
4use cgp::prelude::*;
5
6use crate::dsl::Use;
7
8pub struct HandleUseProvider;
9
10#[cgp_provider]
11impl<Context, Provider, Code, Input> Handler<Context, Use<Provider, Code>, Input>
12 for HandleUseProvider
13where
14 Context: HasAsyncErrorType,
15 Provider: Handler<Context, Code, Input>,
16 Input: Send,
17 Provider: Send,
18 Code: Send,
19{
20 type Output = Provider::Output;
21
22 async fn handle(
23 context: &Context,
24 _tag: PhantomData<Use<Provider, Code>>,
25 input: Input,
26 ) -> Result<Provider::Output, Context::Error> {
27 Provider::handle(context, PhantomData, input).await
28 }
29}