summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSerguey Parkhomovsky <xindigo@gmail.com>2026-03-21 13:10:04 -0700
committerSerguey Parkhomovsky <xindigo@gmail.com>2026-03-21 13:10:04 -0700
commita23a714659b10473d74daaa41e03237c74c6861b (patch)
tree5bd3dd3e785385d11386f729f6eb28081dbec67d /src
parent820b7fca6e5a076b646ce99741976fe3d0c1a057 (diff)
Reduce the number of clones for the printer name
Diffstat (limited to 'src')
-rw-r--r--src/main.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index ae595ed..ddb1ed6 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -48,6 +48,7 @@ async fn main() {
api_key,
} => {
info!(name, host, "Found Prusa");
+ state.write().unwrap().insert(name.clone(), PrinterState::default());
tokio::spawn(async move {
match tokio::spawn(poll_prusa(name.clone(), host, api_key, state)).await {
Ok(()) => warn!(name, "Prusa polling task exited unexpectedly"),
@@ -62,6 +63,7 @@ async fn main() {
access_code,
} => {
info!(name, host, "Found Bambu");
+ state.write().unwrap().insert(name.clone(), PrinterState::default());
tokio::spawn(async move {
match tokio::spawn(poll_bambu(
name.clone(),
@@ -110,9 +112,7 @@ async fn fetch_prusa(
.json::<PrusaStatus>()
.await?;
let mut lock = state.write().unwrap();
- lock.entry(name.to_owned())
- .or_default()
- .update_from(&response);
+ lock.get_mut(name).unwrap().update_from(&response);
Ok(())
}
@@ -194,7 +194,7 @@ async fn poll_bambu(
match serde_json::from_slice::<BambuStatus>(&p.payload) {
Ok(msg) => {
let mut lock = state.write().unwrap();
- lock.entry(name.clone()).or_default().update_from(&msg);
+ lock.get_mut(name.as_str()).unwrap().update_from(&msg);
debug!(name, "Updated state");
}
Err(e) => error!(error = %e, "Failed to deserialize BambuStatus"),