cgp_error/traits/can_raise_error.rs
1use cgp::component::{DefaultNamespace, UseDelegate};
2use cgp_macro::cgp_component;
3
4use crate::traits::has_error_type::HasErrorType;
5
6/**
7 The `CanRaiseError` trait is used to raise any concrete error type into
8 an abstract error provided by [`HasErrorType`].
9*/
10#[cgp_component(ErrorRaiser)]
11#[prefix(@cgp.core.error in DefaultNamespace)]
12#[derive_delegate(UseDelegate<SourceError>)]
13#[use_type(HasErrorType.Error)]
14pub trait CanRaiseError<SourceError> {
15 fn raise_error(error: SourceError) -> Error;
16}