auditaur_core/storage/
mod.rs1use crate::model::{
2 FrontendError, LogRecord, Session, SpanRecord, TauriEventRecord, TauriIpcCall, TauriWindowState,
3};
4use thiserror::Error;
5
6#[derive(Debug, Error)]
7pub enum StorageError {
8 #[error("storage backend error: {0}")]
9 Backend(String),
10}
11
12pub trait TelemetryStore {
13 fn create_session(&self, session: &Session) -> Result<(), StorageError>;
14 fn insert_log(&self, log: &LogRecord) -> Result<(), StorageError>;
15 fn insert_span(&self, span: &SpanRecord) -> Result<(), StorageError>;
16 fn insert_frontend_error(&self, error: &FrontendError) -> Result<(), StorageError>;
17 fn insert_tauri_ipc_call(&self, call: &TauriIpcCall) -> Result<(), StorageError>;
18 fn insert_tauri_event(&self, event: &TauriEventRecord) -> Result<(), StorageError>;
19 fn insert_tauri_window_state(&self, window: &TauriWindowState) -> Result<(), StorageError>;
20}
21
22#[derive(Debug, Clone, Default, PartialEq, Eq)]
23pub struct LogQuery {
24 pub session_id: Option<String>,
25 pub trace_id: Option<String>,
26 pub limit: Option<usize>,
27}
28
29#[derive(Debug, Clone, Default, PartialEq, Eq)]
30pub struct SpanQuery {
31 pub session_id: Option<String>,
32 pub trace_id: Option<String>,
33 pub limit: Option<usize>,
34}
35
36#[derive(Debug, Clone, Default, PartialEq, Eq)]
37pub struct FrontendErrorQuery {
38 pub session_id: Option<String>,
39 pub trace_id: Option<String>,
40 pub limit: Option<usize>,
41}
42
43#[derive(Debug, Clone, Default, PartialEq, Eq)]
44pub struct TauriIpcQuery {
45 pub session_id: Option<String>,
46 pub trace_id: Option<String>,
47 pub limit: Option<usize>,
48}
49
50#[derive(Debug, Clone, Default, PartialEq, Eq)]
51pub struct TauriEventQuery {
52 pub session_id: Option<String>,
53 pub trace_id: Option<String>,
54 pub limit: Option<usize>,
55}
56
57#[derive(Debug, Clone, Default, PartialEq, Eq)]
58pub struct TauriWindowQuery {
59 pub session_id: Option<String>,
60 pub latest_only: bool,
61 pub limit: Option<usize>,
62}