Skip to main content

actrpc_core/error/
action_codec.rs

1use crate::action::ActionKind;
2
3#[non_exhaustive]
4#[derive(Debug, thiserror::Error)]
5pub enum ActionCodecError {
6    /// thrown when requested/resolved action andn requested/resolved action record types does not
7    /// match
8    #[error("action kind mismatch: expected {expected}, got {actual}")]
9    KindMismatch {
10        expected: ActionKind,
11        actual: ActionKind,
12    },
13    /// thrown when requested action record params doesnt match with the requested action type
14    #[error("invalid params for action {action}: {source}")]
15    InvalidParams {
16        action: ActionKind,
17        #[source]
18        source: serde_json::Error,
19    },
20    /// thrown when resolved action record result cannot be decoded to resolved action result
21    #[error("invalid result for action {action}: {source}")]
22    InvalidResult {
23        action: ActionKind,
24        #[source]
25        source: serde_json::Error,
26    },
27    /// thrown when requested action record does not have params but requested action does
28    #[error("missing params for action {action}")]
29    MissingParams { action: ActionKind },
30    /// thrown when resolved action record does not have params but resolved action does
31    #[error("missing ok result for action {action}")]
32    MissingOkResult { action: ActionKind },
33}