use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
pub struct EffectVector {
pub effects: Vec<EffectKind>,
pub paths_read: Vec<String>,
pub paths_write: Vec<String>,
pub network_hosts: Vec<String>,
pub secret_refs: Vec<String>,
pub recipients: Vec<String>,
pub destructive: bool,
pub reversible: bool,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)]
#[non_exhaustive]
#[serde(rename_all = "PascalCase")]
pub enum EffectKind {
FsRead,
FsWrite,
DbRead,
DbWrite,
NetOutbound,
ExecWasm,
ExecNative,
SecretUse,
BrowserSubmit,
CommSend,
CredentialExchange,
}