tackler_core/config/
overlaps.rs1use crate::config::{PriceLookupType, StorageType};
10use crate::kernel::settings::GitInputSelector;
11use std::path::PathBuf;
12
13#[derive(Debug, Default, Clone)]
15pub struct OverlapConfig {
16 pub audit: AuditOverlap,
18 pub strict: StrictOverlap,
20 pub storage: StorageOverlap,
22 pub price: PriceOverlap,
24 pub report: ReportOverlap,
26 pub target: TargetOverlap,
28}
29
30#[derive(Debug, Default, Clone)]
31pub struct StorageOverlap {
32 pub storage_type: Option<StorageType>,
33 pub input: Option<InputOverlap>,
34}
35
36#[derive(Debug, Clone)]
38pub enum InputOverlap {
39 File(FileInputOverlap),
40 Fs(FsInputOverlap),
41 Git(GitInputOverlap),
42}
43
44#[derive(Debug, Clone)]
45pub struct FileInputOverlap {
46 pub path: PathBuf,
47}
48
49#[derive(Debug, Clone)]
50pub struct FsInputOverlap {
51 pub path: Option<String>,
52 pub dir: Option<String>,
53 pub ext: Option<String>,
54}
55
56#[derive(Debug, Clone)]
57pub struct GitInputOverlap {
58 pub repo: Option<String>,
59 pub dir: Option<String>,
60 pub git_ref: Option<GitInputSelector>,
61 pub ext: Option<String>,
62}
63
64#[derive(Debug, Default, Clone)]
66pub struct AuditOverlap {
67 pub mode: Option<bool>,
69}
70
71#[derive(Debug, Default, Clone)]
73pub struct StrictOverlap {
74 pub mode: Option<bool>,
76}
77
78#[derive(Debug, Default, Clone)]
80pub struct PriceOverlap {
81 pub db_path: Option<PathBuf>,
83 pub lookup_type: Option<PriceLookupType>,
85 pub before_time: Option<String>,
87}
88
89#[derive(Debug, Default, Clone)]
91pub struct ReportOverlap {
92 pub commodity: Option<String>,
94 pub account_overlap: Option<Vec<String>>,
96 pub group_by: Option<String>,
98 pub inverted: bool,
100}
101
102#[derive(Debug, Default, Clone)]
104pub struct TargetOverlap {
105 pub reports: Option<Vec<String>>,
107 pub exports: Option<Vec<String>>,
109 pub formats: Option<Vec<String>>,
111}