aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/permissions/file.rs
blob: c973f55bd81768cbe6e196d089a31fa899b16120 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::path::PathBuf;

use serde::{Deserialize, Serialize};

use crate::permissions::rule::Rule;

#[derive(Debug, Clone)]
pub(crate) struct RuleFile {
    pub path: PathBuf,
    pub content: RuleFileContent,
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub(crate) struct RuleFileContent {
    pub permissions: RuleFilePermissions,
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub(crate) struct RuleFilePermissions {
    #[serde(default)]
    pub allow: Vec<Rule>,
    #[serde(default)]
    pub deny: Vec<Rule>,
    #[serde(default)]
    pub ask: Vec<Rule>,
}