-
Type: Task
-
Resolution: Unresolved
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
-
None
-
Rust Drivers
The Rust bson crate supports all of these features:
- en/decoding bson values from byte buffers
- en/decoding bson values from extjson values
- [de]serializing arbitrary values from byte buffers containing encoded bson
- [de]serializing arbitrary values from bson values
- [de]serializing bson values from arbitrary formats
The en/decoding functionality is core to bson; [de]serialization is Rust-specific integration with serde and ideally would be implemented in terms of the core en/decoding and be optional behind a feature flag.
Unfortunately, right now both the public API and internal implementation have badly conflated en/decoding and [de]serialization. Fixing this will give more consistent behavior and API and make the library code much more maintainable.