apalis_board_types/
lib.rs1#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
2use serde::{Deserialize, Serialize};
3
4pub mod config;
6
7#[derive(Default, Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
9#[serde(rename_all = "UPPERCASE")]
10pub enum LogLevel {
11 Info,
13 Warn,
15 Error,
17 #[default]
19 Debug,
20 Trace,
22}
23
24#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
26pub struct LogEntry {
27 pub span: Option<Span>,
29 pub level: LogLevel,
31 pub timestamp: String,
33 pub target: String,
35 #[serde(rename = "fields")]
37 pub entry: Entry,
38}
39
40#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct LineEntry {
44 #[serde(rename = "log.target")]
46 pub log_target: String,
47 #[serde(rename = "log.module_path")]
49 pub log_module_path: String,
50 #[serde(rename = "log.file")]
52 pub log_file: String,
53 #[serde(rename = "log.line")]
55 pub log_line: i64,
56}
57
58#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum EntryType {
62 Result(ResultEntry),
64 Line(LineEntry),
66}
67
68#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
70
71pub struct ResultEntry {
72 pub done_in: String,
74 pub result: String,
76}
77
78#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
80
81pub struct Entry {
82 pub message: Option<String>,
84 #[serde(flatten)]
86 pub entry_type: Option<EntryType>,
87}
88
89#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
91#[serde(rename_all = "camelCase")]
92pub struct Span {
93 pub attempt: i64,
95 pub task_id: String,
97 pub name: String,
99}
100
101#[derive(Debug, thiserror::Error, Serialize, Deserialize)]
103#[serde(tag = "type", content = "message")]
104pub enum ApiError {
105 #[error("Codec error: {0}")]
107 CodecError(String),
108 #[error("Backend error: {0}")]
110 BackendError(String),
111}