From 93ae5d1e65959686229bd14c3d22ffd46f07b344 Mon Sep 17 00:00:00 2001 From: Viktor Charypar Date: Wed, 22 Jan 2025 17:03:49 +0000 Subject: [PATCH] Migrate cat_facts to new crux_kv --- examples/cat_facts/Cargo.lock | 68 ++++++++++++++++------------ examples/cat_facts/Cargo.toml | 20 ++++---- examples/cat_facts/shared/src/app.rs | 18 ++++---- 3 files changed, 58 insertions(+), 48 deletions(-) diff --git a/examples/cat_facts/Cargo.lock b/examples/cat_facts/Cargo.lock index e43f6354..ba2fd554 100644 --- a/examples/cat_facts/Cargo.lock +++ b/examples/cat_facts/Cargo.lock @@ -282,7 +282,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -429,8 +429,6 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crux_core" version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359b0a4e21e08b5adcf533e87189ce92326f4d0f17fc3b1fe70ba506ab2de9b3" dependencies = [ "anyhow", "bincode", @@ -443,14 +441,12 @@ dependencies = [ "serde-reflection", "serde_json", "slab", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "crux_http" version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e77326a37ebdd9f718670c898f3abbb5b501728a303aa8830a4eb9ff15b201" dependencies = [ "anyhow", "async-trait", @@ -463,7 +459,7 @@ dependencies = [ "serde", "serde_bytes", "serde_json", - "thiserror", + "thiserror 2.0.11", "url", "web-sys", ] @@ -471,21 +467,17 @@ dependencies = [ [[package]] name = "crux_kv" version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ae6db4299c0cdf26f7ea9170c4af1da4bc661b2e76baaba8b2d3d1c1eb8c1" dependencies = [ "anyhow", "crux_core", "serde", "serde_bytes", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "crux_macros" version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11023dd86d35f8b42c42d8ce5e5cf48a8d8ecb27e6994b19d6d8e4df872f017f" dependencies = [ "darling", "proc-macro-error", @@ -497,8 +489,6 @@ dependencies = [ [[package]] name = "crux_platform" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb2afd85bfdefbc509575cabcb843509f1e164cb5993d3aedbf1149072a4687" dependencies = [ "crux_core", "serde", @@ -507,13 +497,11 @@ dependencies = [ [[package]] name = "crux_time" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8df32283a22ad9ed35c716067c91fb5f2ee09b04adf86e1d3939d5f0c10ef1" dependencies = [ "chrono", "crux_core", "serde", - "thiserror", + "thiserror 2.0.11", ] [[package]] @@ -967,7 +955,7 @@ dependencies = [ "serde", "serde-wasm-bindgen 0.5.0", "serde_urlencoded", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -984,7 +972,7 @@ dependencies = [ "serde", "serde-wasm-bindgen 0.6.5", "serde_urlencoded", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -1004,7 +992,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1025,7 +1013,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1046,7 +1034,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1082,7 +1070,7 @@ dependencies = [ "js-sys", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -1097,7 +1085,7 @@ dependencies = [ "js-sys", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -1178,7 +1166,7 @@ dependencies = [ "js-sys", "pinned", "serde", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1971,7 +1959,7 @@ checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" dependencies = [ "futures", "rustversion", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2418,7 +2406,7 @@ checksum = "5b6798a64289ff550d8d79847467789a5fd30b42c9c406a4d6dc0bc9b567e55c" dependencies = [ "once_cell", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2483,7 +2471,7 @@ checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2711,7 +2699,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] @@ -2725,6 +2722,17 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -3484,7 +3492,7 @@ dependencies = [ "rustversion", "serde", "slab", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "wasm-bindgen", diff --git a/examples/cat_facts/Cargo.toml b/examples/cat_facts/Cargo.toml index f9556fe0..33e7dc5e 100644 --- a/examples/cat_facts/Cargo.toml +++ b/examples/cat_facts/Cargo.toml @@ -12,16 +12,16 @@ rust-version = "1.66" [workspace.dependencies] anyhow = "1.0.95" -# crux_core = { path = "../../crux_core" } -# crux_http = { path = "../../crux_http" } -# crux_kv = { path = "../../crux_kv" } -# crux_platform = { path = "../../crux_platform" } -# crux_time = { path = "../../crux_time", features = ["chrono"] } -crux_core = "0.11.0" -crux_http = "0.11.0" -crux_kv = "0.6.0" -crux_platform = "0.3.0" -crux_time = { version = "0.8.0", features = ["chrono"] } +crux_core = { path = "../../crux_core" } +crux_http = { path = "../../crux_http" } +crux_kv = { path = "../../crux_kv" } +crux_platform = { path = "../../crux_platform" } +crux_time = { path = "../../crux_time", features = ["chrono"] } +# crux_core = "0.11.0" +# crux_http = "0.11.0" +# crux_kv = "0.6.0" +# crux_platform = "0.3.0" +# crux_time = { version = "0.8.0", features = ["chrono"] } serde = "1.0.217" [workspace.metadata.bin] diff --git a/examples/cat_facts/shared/src/app.rs b/examples/cat_facts/shared/src/app.rs index d621e8ba..debe691a 100644 --- a/examples/cat_facts/shared/src/app.rs +++ b/examples/cat_facts/shared/src/app.rs @@ -9,7 +9,7 @@ use crux_core::{ Capability, Command, }; use crux_http::Http; -use crux_kv::{error::KeyValueError, KeyValue}; +use crux_kv::{command::KeyValue as key_value, error::KeyValueError, KeyValue}; use crux_platform::Platform; use crux_time::{Time, TimeResponse}; @@ -168,9 +168,11 @@ impl App for CatFacts { model.cat_image = Some(response.take_body().unwrap()); let bytes = serde_json::to_vec(&model).unwrap(); - caps.key_value.set(KEY.to_string(), bytes, |_| Event::None); - return render::render(); + return Command::all([ + key_value::set(KEY, bytes).then_send(|_| Event::None), + render::render(), + ]); } Event::SetFact(Err(_)) | Event::SetImage(Err(_)) => { // TODO: Display an error @@ -180,14 +182,14 @@ impl App for CatFacts { model.time = Some(time.to_rfc3339_opts(chrono::SecondsFormat::Secs, true)); let bytes = serde_json::to_vec(&model).unwrap(); - caps.key_value.set(KEY.to_string(), bytes, |_| Event::None); - return render::render(); + return Command::all([ + key_value::set(KEY, bytes).then_send(|_| Event::None), + render::render(), + ]); } Event::CurrentTime(_) => panic!("Unexpected time response"), - Event::Restore => { - caps.key_value.get(KEY.to_string(), Event::SetState); - } + Event::Restore => return key_value::get(KEY).then_send(Event::SetState), Event::SetState(Ok(Some(value))) => { if let Ok(m) = serde_json::from_slice::(&value) { *model = m;