msr_plugin_csv_register_recorder/api/
query.rs1use std::num::NonZeroUsize;
2
3use msr_core::storage::RecordPreludeFilter;
4
5use crate::ResultSender;
6
7use super::{Config, RegisterGroupConfig, RegisterGroupId, Status, StoredRegisterRecord};
8
9#[derive(Debug, Clone)]
10pub struct RecentRecordsRequest {
11 pub limit: NonZeroUsize,
12}
13
14#[derive(Debug, Clone)]
15pub struct FilterRecordsRequest {
16 pub limit: NonZeroUsize,
17 pub filter: RecordPreludeFilter,
18}
19
20#[derive(Debug, Clone, Default)]
21pub struct StatusRequest {
22 pub with_register_groups: bool,
23 pub with_storage_statistics: bool,
24}
25
26#[derive(Debug)]
27pub enum Query {
28 Config(ResultSender<Config>),
29 RegisterGroupConfig(ResultSender<Option<RegisterGroupConfig>>, RegisterGroupId),
30 Status(ResultSender<Status>, StatusRequest),
31 RecentRecords(
32 ResultSender<Vec<StoredRegisterRecord>>,
33 RegisterGroupId,
34 RecentRecordsRequest,
35 ),
36 FilterRecords(
37 ResultSender<Vec<StoredRegisterRecord>>,
38 RegisterGroupId,
39 FilterRecordsRequest,
40 ),
41}