manabrew_protocol/prompts/
dice_rolled.rs1use serde::{Deserialize, Serialize};
2use ts_rs::TS;
3
4#[derive(Debug, Clone, Serialize, Deserialize, TS)]
5#[serde(rename_all = "camelCase")]
6#[ts(export, export_to = "prompts/diceRolled.ts")]
7pub struct DiceRollEntry {
8 #[serde(default, skip_serializing_if = "Option::is_none")]
9 #[ts(optional)]
10 pub label: Option<String>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 #[ts(optional)]
13 pub player_id: Option<String>,
14 pub natural_results: Vec<i32>,
15 pub final_results: Vec<i32>,
16 pub ignored_rolls: Vec<i32>,
17 #[serde(default)]
18 pub highlighted: bool,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, TS)]
22#[serde(rename_all = "camelCase")]
23#[ts(export, export_to = "prompts/diceRolled.ts")]
24pub struct DiceRolledInput {
25 pub sides: i32,
26 pub rolls: Vec<DiceRollEntry>,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
28 #[ts(optional)]
29 pub title: Option<String>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 #[ts(optional)]
32 pub source_card_name: Option<String>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize, TS)]
36#[serde(
37 tag = "type",
38 rename_all = "camelCase",
39 rename_all_fields = "camelCase"
40)]
41#[ts(export, export_to = "prompts/diceRolled.ts")]
42pub enum DiceRolledOutput {
43 DiceRolledAcknowledged,
44}