aboutsummaryrefslogtreecommitdiff
path: root/src/libs/intertrait/cast/error.rs
blob: e6d86a596c6c56c86c907132a66a2a5726a655a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use crate::libs::intertrait::{CasterError, GetCasterError};

#[derive(thiserror::Error, Debug)]
pub enum CastError
{
    #[error("Failed to get caster")]
    GetCasterFailed(#[from] GetCasterError),

    #[error("Failed to cast from trait {from} to trait {to}")]
    CastFailed
    {
        #[source]
        source: CasterError,
        from: &'static str,
        to: &'static str,
    },

    #[error("Trait '{0}' can't be cast to Arc")]
    NotArcCastable(&'static str),
}