candid
candid copied to clipboard
As a developer, I want to [Nat] support bincode/serde_json deserialize
Very happy to see that Nat supports Serialize, but it doesn't work properly with bincode\serde_json
use candid::{Deserialize, Nat};
use serde::Serialize;
#[derive(Default, Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
pub struct TestStruct {
inner: Nat,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_serde_with_bincode() {
let test_struct = TestStruct::default();
let serialized = bincode::serialize(&test_struct).unwrap();
// panicked at 'called `Result::unwrap()` on an `Err` value: DeserializeAnyNotSupported'
let deserialized = bincode::deserialize(&serialized).unwrap();
assert_eq!(test_struct, deserialized);
}
#[test]
fn test_serde_with_json() {
let test_struct = TestStruct::default();
let serialized = serde_json::to_string(&test_struct).unwrap();
// panicked at 'called `Result::unwrap()` on an `Err` value: Error("invalid type: sequence, expected Nat value"
let deserialized: TestStruct = serde_json::from_str(&serialized).unwrap();
assert_eq!(test_struct, deserialized);
}
}