Skip to main content

actrpc_core/
error.rs

1mod action_codec;
2mod codec;
3mod protocol;
4
5pub use action_codec::ActionCodecError;
6pub use codec::CodecError;
7pub use protocol::ProtocolError;
8
9use crate::json_rpc::JsonRpcError;
10
11/// Umbrella error for operations implemented inside `actrpc-core`.
12///
13/// This crate only owns protocol/model/codec concerns.
14/// Runtime crates should define their own execution, policy, transport,
15/// and orchestration errors locally.
16#[non_exhaustive]
17#[derive(Debug, thiserror::Error)]
18pub enum Error {
19    #[error(transparent)]
20    ActionCodec(#[from] ActionCodecError),
21
22    #[error(transparent)]
23    Codec(#[from] CodecError),
24
25    #[error(transparent)]
26    Protocol(#[from] ProtocolError),
27
28    #[error("remote JSON-RPC error {code}: {message}", code = .0.code, message = .0.message)]
29    RemoteJsonRpc(JsonRpcError),
30}
31
32pub type ActRpcError = Error;