Skip to main content

wrapper_events/
config.rs

1use crate::error::ErrorDetailSink;
2
3#[derive(Debug, Clone, Copy, Default, Eq, PartialEq)]
4pub enum CaptureRaw {
5    #[default]
6    None,
7    Line,
8    Json,
9    Both,
10}
11
12#[derive(Debug, Clone, Copy, Default, Eq, PartialEq)]
13pub enum ErrorDetailCapture {
14    #[default]
15    RedactedSummaryOnly,
16    FullDetails,
17}
18
19#[derive(Debug, Clone, Copy, Eq, PartialEq)]
20pub struct IngestLimits {
21    pub max_line_bytes: usize,
22    pub max_raw_bytes_total: Option<usize>,
23}
24
25impl Default for IngestLimits {
26    fn default() -> Self {
27        Self {
28            max_line_bytes: 64 * 1024,
29            max_raw_bytes_total: None,
30        }
31    }
32}
33
34pub struct IngestConfig {
35    pub limits: IngestLimits,
36    pub capture_raw: CaptureRaw,
37    pub error_detail_capture: ErrorDetailCapture,
38    pub error_sink: Option<Box<dyn ErrorDetailSink>>,
39}
40
41impl Default for IngestConfig {
42    fn default() -> Self {
43        Self {
44            limits: IngestLimits::default(),
45            capture_raw: CaptureRaw::None,
46            error_detail_capture: ErrorDetailCapture::RedactedSummaryOnly,
47            error_sink: None,
48        }
49    }
50}