use serde::Deserialize;
use serde::Serialize;
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum ApiTarget {
Replace,
Clipboard,
Dialog,
}
impl Default for ApiTarget {
fn default() -> Self {
ApiTarget::Replace
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ApiInput(String);
impl Default for ApiInput {
fn default() -> Self {
ApiInput("query".to_string())
}
}
impl ApiInput {
pub fn as_str(&self) -> &str {
&self.0
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct FlowApiModel {
#[serde(default)]
pub input: Option<ApiInput>,
#[serde(default)]
pub output: ApiTarget,
#[serde(default)]
pub args: HashMap<String, String>,
}