cgp_error/traits/
can_raise_error.rs1use cgp_component::{DelegateComponent, HasComponents, UseDelegate};
2use cgp_component_macro::cgp_component;
3
4use crate::traits::has_error_type::HasErrorType;
5
6#[cgp_component {
15 provider: ErrorRaiser
16}]
17pub trait CanRaiseError<SourceError>: HasErrorType {
18 fn raise_error(error: SourceError) -> Self::Error;
19}
20
21impl<Context, SourceError, Components, Delegate> ErrorRaiser<Context, SourceError>
22 for UseDelegate<Components>
23where
24 Context: HasErrorType,
25 Components: DelegateComponent<SourceError, Delegate = Delegate>,
26 Delegate: ErrorRaiser<Context, SourceError>,
27{
28 fn raise_error(e: SourceError) -> Context::Error {
29 Delegate::raise_error(e)
30 }
31}