The serialization format used by bitflags!
has changed between 1.x
and
2.x
. If you previously #[derive(Serialize, Deserialize]
, then you can use this library to
maintain compatibility while upgrading.
You can either use this as a regular dependency, or pull the source into a private module in your project.
Add bitflags-serde-legacy
to your Cargo.toml
:
toml
[dependencies.bitflags_serde_legacy]
version = "0.1.1"
Then, replace an existing #[derive(Serialize, Deserialize)]
on your bitflags!
generated types with the following manual implementations:
```rust use bitflags::bitflags;
bitflags! { // #[derive(Serialize, Deserialize)] struct Flags: u32 { const A = 0b00000001; const B = 0b00000010; const C = 0b00000100; const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits(); } }
impl serde::Serialize for Flags {
fn serialize
impl<'de> serde::Deserialize<'de> for Flags {
fn deserialize