aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2019-02-19 12:55:45 +0000
committerRobin Krahl <robin.krahl@ireas.org>2019-02-19 14:54:07 +0100
commitffb3d8f11b232e811bebfe0c9b450a8a95a7b12b (patch)
treec0a9093c785a853a96fd0549078bce1cafe8ee3d
parentdbcbc8472543d5c5b24bf6ce281637a9a8a70098 (diff)
downloadntw-ffb3d8f11b232e811bebfe0c9b450a8a95a7b12b.tar.gz
ntw-ffb3d8f11b232e811bebfe0c9b450a8a95a7b12b.tar.bz2
Implement serde::Serialize in enum_u8
By providing a custom Serialize implementation, we make sure that enum variants are not mapped to their index, but to their discriminant. This allows us to use serde when preparing the response packet.
-rw-r--r--src/util.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs
index c83d3f3..cbe7c0d 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -59,6 +59,12 @@ macro_rules! enum_u8 {
}
}
+ impl ::serde::Serialize for $name {
+ fn serialize<S: ::serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
+ serializer.serialize_u8((*self).into())
+ }
+ }
+
impl From<$name> for u8 {
fn from(val: $name) -> u8 {
val as u8