diff options
| author | LLLL Colonq <llll@colonq> | 2025-11-06 23:50:33 -0500 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2025-11-06 23:50:33 -0500 |
| commit | e8bf4d7dde7d4f450458deb0612eb3bc14994901 (patch) | |
| tree | 5ce52d534aff87bcbdb017fd62c6695597c01515 /crates/renderer/src/toggle.rs | |
| parent | 0e8b1dded85602aa2dc15f27c3c89800e4c3402b (diff) | |
Update
Diffstat (limited to 'crates/renderer/src/toggle.rs')
| -rw-r--r-- | crates/renderer/src/toggle.rs | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/crates/renderer/src/toggle.rs b/crates/renderer/src/toggle.rs index f6d60a4..8468fc4 100644 --- a/crates/renderer/src/toggle.rs +++ b/crates/renderer/src/toggle.rs @@ -1,8 +1,6 @@ use teleia::*; use std::collections::HashMap; -use crate::fig; - #[derive(Debug, Clone)] pub struct Toggle { pub val: bool, @@ -27,15 +25,25 @@ impl Toggles { pub fn reset(&mut self) { self.toggles.clear(); } - pub fn handle(&mut self, ctx: &context::Context, st: &state::State, msg: fig::SexpMessage) -> Option<()> { - let nm = msg.data.get(0)?.as_str()?; + pub fn handle(&mut self, + ctx: &context::Context, st: &state::State, + msg: fig::BinaryMessage + ) { + let nm = if let Ok(s) = str::from_utf8(&msg.data) { s } else { + log::warn!("failed to decode toggle name"); + return; + }; let prev = self.get(ctx, st, nm).map(|t| t.val).unwrap_or(false); self.set(ctx, st, nm, !prev); - Some(()) } - pub fn handle_set(&mut self, ctx: &context::Context, st: &state::State, msg: fig::SexpMessage, val: bool) -> Option<()> { - let nm = msg.data.get(0)?.as_str()?; + pub fn handle_set(&mut self, + ctx: &context::Context, st: &state::State, + msg: fig::BinaryMessage, val: bool + ) { + let nm = if let Ok(s) = str::from_utf8(&msg.data) { s } else { + log::warn!("failed to decode toggle name"); + return; + }; self.set(ctx, st, nm, val); - Some(()) } } |
