aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/permissions/file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/atuin-ai/src/permissions/file.rs')
-rw-r--r--crates/atuin-ai/src/permissions/file.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/crates/atuin-ai/src/permissions/file.rs b/crates/atuin-ai/src/permissions/file.rs
new file mode 100644
index 00000000..c973f55b
--- /dev/null
+++ b/crates/atuin-ai/src/permissions/file.rs
@@ -0,0 +1,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>,
+}