Ramjet is a relay consumer that supports configurable forward and track collections, as well as record reconciliation.
event-stream
relay
firehose
riblt
atprotocol
1//! Error types for the Ramjet service.
2//!
3//! All errors follow the convention: `error-ramjet-{domain}-{number} {message}: {details}`
4
5/// Top-level error type for Ramjet operations.
6#[derive(Debug, thiserror::Error)]
7pub enum RamjetError {
8 /// Fjall storage engine error.
9 #[error("error-ramjet-storage-1 fjall operation failed: {0}")]
10 Fjall(#[from] fjall::Error),
11
12 /// Key encoding or decoding error.
13 #[error("error-ramjet-storage-2 key encoding failed: {reason}")]
14 KeyEncoding {
15 /// Description of the encoding failure.
16 reason: String,
17 },
18
19 /// Value encoding or decoding error.
20 #[error("error-ramjet-storage-3 value decoding failed: {reason}")]
21 ValueDecoding {
22 /// Description of the decoding failure.
23 reason: String,
24 },
25
26 /// Invalid configuration.
27 #[error("error-ramjet-config-1 invalid configuration: {reason}")]
28 Config {
29 /// Description of the configuration error.
30 reason: String,
31 },
32
33 /// HTTP server error.
34 #[error("error-ramjet-server-1 server error: {reason}")]
35 Server {
36 /// Description of the server error.
37 reason: String,
38 },
39
40 /// Pipeline processing error.
41 #[error("error-ramjet-pipeline-1 pipeline error: {reason}")]
42 Pipeline {
43 /// Description of the pipeline error.
44 reason: String,
45 },
46
47 /// I/O error.
48 #[error("error-ramjet-io-1 I/O error: {0}")]
49 Io(#[from] std::io::Error),
50
51 /// Failed to load zstd dictionary file.
52 #[error("error-ramjet-storage-4 failed to load zstd dictionary at {path}: {source}")]
53 DictLoad {
54 /// Path to the dictionary file.
55 path: std::path::PathBuf,
56 /// Underlying I/O error.
57 source: std::io::Error,
58 },
59
60 /// QUIC transport error.
61 #[error("error-ramjet-quic-1 QUIC error: {reason}")]
62 Quic {
63 /// Description of the QUIC error.
64 reason: String,
65 },
66}