diff options
| author | LLLL Colonq <llll@colonq> | 2026-08-29 04:06:51 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-08-29 04:06:51 -0400 |
| commit | 761a3172bf4c15aed3836e4d1cd6f815b651b0e0 (patch) | |
| tree | cc90491529e83349d84d42a8e9982e5f0f38338e /2026/games/rpc2dot0/src/message.rs | |
| parent | 0d2d8cd897e94bd94e0b3ae7c6ce9aa580a44a0a (diff) | |
Fix
Diffstat (limited to '2026/games/rpc2dot0/src/message.rs')
| -rw-r--r-- | 2026/games/rpc2dot0/src/message.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/2026/games/rpc2dot0/src/message.rs b/2026/games/rpc2dot0/src/message.rs new file mode 100644 index 0000000..d960b67 --- /dev/null +++ b/2026/games/rpc2dot0/src/message.rs @@ -0,0 +1,26 @@ +use serde::Serialize;
+use std::fmt::Debug;
+
+#[derive(Serialize, Debug)]
+pub struct Message<'a> {
+ pub op: &'a str,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub verb: Option<&'a str>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub win: Option<bool>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub score: Option<i32>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub video_url: Option<String>,
+}
+
+impl<'a> Message<'a> {
+ pub fn post<MSG>(window: &web_sys::Window, msg: &MSG)
+ where
+ MSG: Serialize + Debug,
+ {
+ log::info!("eatyourgreens:: post message: {:?}", msg);
+ let js_value = serde_wasm_bindgen::to_value(msg).unwrap();
+ let _ = window.post_message(&js_value, "*");
+ }
+}
|
