use std::collections::HashMap;
use serde::{Serialize, de::DeserializeOwned};
pub trait SceneTemplate {
type Arguments: Serialize + Clone + Send + Sync;
type Result: DeserializeOwned + Send + Sync;
fn template_name() -> &'static str;
}
#[derive(Serialize)]
pub(crate) struct CreateSceneRequest<'a, A: Serialize> {
pub template: &'a str,
pub arguments: &'a A,
}
#[derive(serde::Deserialize)]
pub(crate) struct CreateSceneResponse<R> {
pub result: R,
#[serde(rename = "mangleMap", default)]
pub mangle_map: HashMap<String, String>,
}