You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let sample =
new_storage::<LocalStorage,BTreeMap<String,Foo>>(cx,"sample".to_string(), || {
tracing::warn!("📦 No sample found");BTreeMap::new()});
tracing::info!("📦 Sample: {:?}", sample.read());
sample.with_mut(|s| {
s.insert("foo".to_string(),Foo::ANone);});
Run the app, then quit and run it again, the console should print:
2023-11-08T15:18:54.198633Z ERROR dioxus_std::storage: Error deserializing value from storage: WontImplement
2023-11-08T15:18:54.198645Z WARN nix_browser::app::state: 📦 No sample found
2023-11-08T15:18:54.199122Z INFO nix_browser::app::state: 📦 Sample: {}
If we remove the #[serde(untagged)], the code works as expected. Turns out we are not the first to notice this issue with postcard:
What surprised me at first was that, even though postcard uses serde's derives, it doesn't support everything serde does for other formats. I get that there's no guarantees that a format would implement all serde features, but there are some surprises (e.g. #[serde(untagged)] will only error when deserializing, not when serializing).
See #17 (comment) for the original issue wherein I reported that #17's use of
postcard
fails to deserialize certain types from disk ontoSignal
s.Here's a simple type that will trigger postcard's
WontImplement
error:Here's the code to reproduce:
Run the app, then quit and run it again, the console should print:
If we remove the
#[serde(untagged)]
, the code works as expected. Turns out we are not the first to notice this issue withpostcard
:jamesmunns/postcard#92
The text was updated successfully, but these errors were encountered: