-
Notifications
You must be signed in to change notification settings - Fork 37
Closed
Description
When deserializing symbols from eg. JSON the resulting values are off by one.
Example:
use string_interner::{DefaultSymbol, StringInterner};
fn main() {
let mut interner = StringInterner::default();
let symbol = interner.get_or_intern("hello");
let serialized = serde_json::to_string(&symbol).unwrap();
println!("Original: {:?}, JSON: {}", symbol, serialized);
let deserialized: DefaultSymbol = serde_json::from_str(&serialized).unwrap();
println!("Deserialized: {:?}", deserialized);
match interner.resolve(deserialized) {
Some(s) => println!("Resolves to: {}", s),
None => println!("Cannot resolve symbol!"),
}
}Expected Output:
Original: SymbolU32 { value: 1 }, JSON: 1
Deserialized: SymbolU32 { value: 1 }
Resolves to: hello
Actual Output
Original: SymbolU32 { value: 1 }, JSON: 1
Deserialized: SymbolU32 { value: 2 }
Cannot resolve symbol!
Metadata
Metadata
Assignees
Labels
No labels