aboutsummaryrefslogtreecommitdiff
path: root/src/external/serde.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/external/serde.rs')
-rw-r--r--src/external/serde.rs30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/external/serde.rs b/src/external/serde.rs
index bc1f2ec..be4f2ed 100644
--- a/src/external/serde.rs
+++ b/src/external/serde.rs
@@ -1,17 +1,21 @@
//! Specialized serialization for flags types using `serde`.
+use crate::{
+ parser::{self, ParseHex, WriteHex},
+ Flags,
+};
use core::{fmt, str};
-use crate::{Flags, parser::{self, ParseHex, WriteHex}};
use serde::{
de::{Error, Visitor},
Deserialize, Deserializer, Serialize, Serializer,
};
-/// Serialize a set of flags as a human-readable string or their underlying bits.
-pub fn serialize<B: Flags, S: Serializer>(
- flags: &B,
- serializer: S,
-) -> Result<S::Ok, S::Error>
+/**
+Serialize a set of flags as a human-readable string or their underlying bits.
+
+Any unknown bits will be retained.
+*/
+pub fn serialize<B: Flags, S: Serializer>(flags: &B, serializer: S) -> Result<S::Ok, S::Error>
where
B::Bits: WriteHex + Serialize,
{
@@ -25,14 +29,12 @@ where
}
}
-/// Deserialize a set of flags from a human-readable string or their underlying bits.
-pub fn deserialize<
- 'de,
- B: Flags,
- D: Deserializer<'de>,
->(
- deserializer: D,
-) -> Result<B, D::Error>
+/**
+Deserialize a set of flags from a human-readable string or their underlying bits.
+
+Any unknown bits will be retained.
+*/
+pub fn deserialize<'de, B: Flags, D: Deserializer<'de>>(deserializer: D) -> Result<B, D::Error>
where
B::Bits: ParseHex + Deserialize<'de>,
{