Skip to main content

cgp_dispatch/providers/builders/
build_and_merge_outputs.rs

1use cgp_core::field::traits::MapFields;
2use cgp_core::prelude::*;
3use cgp_handler::{
4    ComputerComponent, ComputerRefComponent, HandlerComponent, HandlerRefComponent,
5    TryComputerComponent, TryComputerRefComponent,
6};
7
8use crate::{BuildAndMerge, BuildWithHandlers};
9
10delegate_components! {
11    <Output, Handlers: MapFields<ToBuildAndMergeHandler>>
12    new BuildAndMergeOutputs<Output, Handlers> {
13        [
14            ComputerComponent,
15            ComputerRefComponent,
16            TryComputerComponent,
17            TryComputerRefComponent,
18            HandlerComponent,
19            HandlerRefComponent,
20        ]:
21            BuildWithHandlers<Output, Handlers::Mapped>
22    }
23}
24
25pub struct ToBuildAndMergeHandler;
26
27impl MapType for ToBuildAndMergeHandler {
28    type Map<Handler> = BuildAndMerge<Handler>;
29}