hermes_cli_components/traits/build.rs
1use cgp::prelude::*;
2
3#[derive_component(BuilderTypeComponent, ProvideBuilderType<App>)]
4pub trait HasBuilderType: Async {
5 type Builder: Async;
6}
7
8pub type BuilderOf<Context> = <Context as HasBuilderType>::Builder;
9
10#[derive_component(BuilderLoaderComponent, BuilderLoader<App>)]
11#[async_trait]
12pub trait CanLoadBuilder: HasBuilderType + HasErrorType {
13 async fn load_builder(&self) -> Result<Self::Builder, Self::Error>;
14}