#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Permission {
Read,
Write,
Edit,
Shell(Option<String>),
Grep,
Glob,
WebFetch,
WebSearch,
NotebookEdit,
TodoWrite,
Other(String),
}
impl std::fmt::Display for Permission {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Read => write!(f, "Read"),
Self::Write => write!(f, "Write"),
Self::Edit => write!(f, "Edit"),
Self::Shell(None) => write!(f, "Shell"),
Self::Shell(Some(p)) => write!(f, "Shell({p})"),
Self::Grep => write!(f, "Grep"),
Self::Glob => write!(f, "Glob"),
Self::WebFetch => write!(f, "WebFetch"),
Self::WebSearch => write!(f, "WebSearch"),
Self::NotebookEdit => write!(f, "NotebookEdit"),
Self::TodoWrite => write!(f, "TodoWrite"),
Self::Other(s) => write!(f, "{s}"),
}
}
}