plexus_substrate/activations/mustache/
types.rs1use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5use uuid::Uuid;
6
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
9pub struct TemplateInfo {
10 pub id: String,
12 pub plugin_id: Uuid,
14 pub method: String,
16 pub name: String,
18 pub created_at: i64,
20 pub updated_at: i64,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, thiserror::Error)]
26pub enum MustacheError {
27 #[error("Template not found: {0}")]
28 TemplateNotFound(String),
29
30 #[error("Storage error: {0}")]
31 StorageError(String),
32
33 #[error("Render error: {0}")]
34 RenderError(String),
35
36 #[error("Invalid template: {0}")]
37 InvalidTemplate(String),
38}
39
40impl From<String> for MustacheError {
41 fn from(s: String) -> Self {
42 MustacheError::StorageError(s)
43 }
44}
45
46impl From<&str> for MustacheError {
47 fn from(s: &str) -> Self {
48 MustacheError::StorageError(s.to_string())
49 }
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
54#[serde(tag = "type", rename_all = "snake_case")]
55pub enum MustacheEvent {
56 Rendered {
58 output: String,
60 },
61
62 Registered {
64 template: TemplateInfo,
66 },
67
68 Template {
70 template: String,
72 },
73
74 NotFound {
76 message: String,
78 },
79
80 Templates {
82 templates: Vec<TemplateInfo>,
84 },
85
86 Deleted {
88 count: usize,
90 },
91
92 Error {
94 message: String,
96 },
97}