use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Backend {
Grep,
Glob,
Websearch,
Webfetch,
Memory,
Rlm,
}
impl Backend {
pub fn id(self) -> &'static str {
match self {
Self::Grep => "grep",
Self::Glob => "glob",
Self::Websearch => "websearch",
Self::Webfetch => "webfetch",
Self::Memory => "memory",
Self::Rlm => "rlm",
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BackendChoice {
pub backend: Backend,
#[serde(default)]
pub args: Value,
}