cgp_handler/providers/
promote_all.rs1use cgp_core::prelude::*;
2
3use crate::{
4 AsyncComputerComponent, AsyncComputerRefComponent, ComputerComponent, ComputerRefComponent,
5 HandlerComponent, HandlerRefComponent, Promote, PromoteAsync, PromoteRef, TryComputerComponent,
6 TryComputerRefComponent, TryPromote,
7};
8
9delegate_components! {
10 <Provider>
11 new PromoteComputer<Provider> {
12 ComputerRefComponent: PromoteRef<Provider>,
13 TryComputerComponent: Promote<Provider>,
14 TryComputerRefComponent: PromoteRef<Provider>,
15 AsyncComputerComponent: PromoteAsync<Provider>,
16 AsyncComputerRefComponent: PromoteRef<Provider>,
17 HandlerComponent: PromoteAsync<Provider>,
18 HandlerRefComponent: PromoteRef<Provider>,
19 }
20}
21
22delegate_components! {
23 <Provider>
24 new PromoteTryComputer<Provider> {
25 TryComputerComponent: TryPromote<Provider>,
26 [
27 ComputerRefComponent,
28 TryComputerRefComponent,
29 AsyncComputerComponent,
30 AsyncComputerRefComponent,
31 HandlerComponent,
32 HandlerRefComponent,
33 ] ->
34 PromoteComputer<Provider>,
35 }
36}
37
38delegate_components! {
39 <Provider>
40 new PromoteProducer<Provider> {
41 ComputerComponent: Promote<Provider>,
42 [
43 ComputerRefComponent,
44 TryComputerComponent,
45 TryComputerRefComponent,
46 AsyncComputerComponent,
47 AsyncComputerRefComponent,
48 HandlerComponent,
49 HandlerRefComponent,
50 ] ->
51 PromoteComputer<Provider>,
52 }
53}
54
55delegate_components! {
56 <Provider>
57 new PromoteAsyncComputer<Provider> {
58 AsyncComputerRefComponent: PromoteRef<Provider>,
59 HandlerComponent: Promote<Provider>,
60 HandlerRefComponent: PromoteRef<Provider>,
61 }
62}
63
64delegate_components! {
65 <Provider>
66 new PromoteHandler<Provider> {
67 HandlerComponent: TryPromote<Provider>,
68 [
69 AsyncComputerRefComponent,
70 HandlerRefComponent,
71 ] ->
72 PromoteAsyncComputer<Provider>,
73 }
74}