cgp_error/traits/
can_wrap_error.rs

1use cgp_component::{DelegateComponent, HasComponents, UseDelegate};
2use cgp_component_macro::cgp_component;
3
4use crate::traits::HasErrorType;
5
6#[cgp_component {
7    provider: ErrorWrapper,
8}]
9pub trait CanWrapError<Detail>: HasErrorType {
10    fn wrap_error(error: Self::Error, detail: Detail) -> Self::Error;
11}
12
13impl<Context, Detail, Components> ErrorWrapper<Context, Detail> for UseDelegate<Components>
14where
15    Context: HasErrorType,
16    Components: DelegateComponent<Detail>,
17    Components::Delegate: ErrorWrapper<Context, Detail>,
18{
19    fn wrap_error(error: Context::Error, detail: Detail) -> Context::Error {
20        Components::Delegate::wrap_error(error, detail)
21    }
22}