pub enum AtomicAction {
Shell {
argv: Vec<String>,
},
Pipeline {
argv: Vec<String>,
},
FsRead {
path: String,
},
FsWrite {
path: String,
},
Net {
host: String,
},
Fetch {
host: String,
},
EnvRead {
name: String,
},
EnvSet {
name: String,
},
McpTool {
name: String,
},
}Expand description
The primitive operations an Action decomposes into.
One shell command typically yields several: the command itself, every path it touches, every host it may contact, every env var it reads or sets.
Variants§
Shell
Normalised argv of one (sub-)command.
Pipeline
A whole pipeline / list (a | b && c) with separators kept as tokens, so
rules such as curl * | sh can match across sub-commands. Never carries
a default verdict (see engine/mod.rs).
FsRead
Absolute path in slash-separated canonical form (~, ${project} and
cwd already applied).
FsWrite
A file write, create, delete or move.
Net
Host name only (no scheme, no port).
Fetch
The host of a URL a fetch tool reads; matched by fetch and net rules.
EnvRead
An environment variable read ($NAME, printenv NAME).
EnvSet
An environment variable set (NAME=value, export NAME=…).
McpTool
An MCP tool invocation.
Implementations§
Trait Implementations§
Source§impl Clone for AtomicAction
impl Clone for AtomicAction
Source§impl Debug for AtomicAction
impl Debug for AtomicAction
Source§impl<'de> Deserialize<'de> for AtomicAction
impl<'de> Deserialize<'de> for AtomicAction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for AtomicAction
Source§impl PartialEq for AtomicAction
impl PartialEq for AtomicAction
Source§impl Serialize for AtomicAction
impl Serialize for AtomicAction
impl StructuralPartialEq for AtomicAction
Auto Trait Implementations§
impl Freeze for AtomicAction
impl RefUnwindSafe for AtomicAction
impl Send for AtomicAction
impl Sync for AtomicAction
impl Unpin for AtomicAction
impl UnsafeUnpin for AtomicAction
impl UnwindSafe for AtomicAction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.