use std::default::Default;
use serde::{Deserialize, Serialize};
#[cfg_attr(all(test, not(feature = "graphql")), derive(PartialEq))]
#[cfg_attr(feature = "graphql", derive(async_graphql::Enum, Eq, PartialEq, Copy))]
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ScriptLanguage {
Expressions,
Painless,
}
impl Default for ScriptLanguage {
#[inline]
fn default() -> Self {
ScriptLanguage::Expressions
}
}
#[cfg(feature = "graphql")]
#[derive(async_graphql::InputObject, Serialize, Deserialize, PartialEq, Clone, Debug)]
pub struct ScriptInput {
source: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
params: Option<crate::scalars::Map>,
}
#[cfg_attr(all(test, not(feature = "graphql")), derive(PartialEq))]
#[cfg_attr(feature = "graphql", derive(async_graphql::SimpleObject, PartialEq))]
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Script {
source: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
params: Option<crate::scalars::Map>,
}
#[cfg(feature = "graphql")]
impl From<ScriptInput> for Script {
#[inline]
fn from(script: ScriptInput) -> Self {
Script {
source: script.source,
params: script.params,
}
}
}