mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-15 16:43:00 +00:00
Merge pull request #109 from mullvad/optional-serde
Make the serde dependency optional
This commit is contained in:
13
src/ipv6.rs
13
src/ipv6.rs
@ -1,5 +1,4 @@
|
||||
use crate::common::{cidr_parts, parse_prefix, IpNetworkError};
|
||||
use serde::{de, Deserialize, Deserializer, Serialize, Serializer};
|
||||
use std::{cmp, fmt, net::Ipv6Addr, str::FromStr};
|
||||
|
||||
const IPV6_BITS: u8 = 128;
|
||||
@ -12,20 +11,22 @@ pub struct Ipv6Network {
|
||||
prefix: u8,
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for Ipv6Network {
|
||||
#[cfg(feature = "serde")]
|
||||
impl<'de> serde::Deserialize<'de> for Ipv6Network {
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
D: serde::Deserializer<'de>,
|
||||
{
|
||||
let s = <String>::deserialize(deserializer)?;
|
||||
Ipv6Network::from_str(&s).map_err(de::Error::custom)
|
||||
Ipv6Network::from_str(&s).map_err(serde::de::Error::custom)
|
||||
}
|
||||
}
|
||||
|
||||
impl Serialize for Ipv6Network {
|
||||
#[cfg(feature = "serde")]
|
||||
impl serde::Serialize for Ipv6Network {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
S: serde::Serializer,
|
||||
{
|
||||
serializer.serialize_str(&self.to_string())
|
||||
}
|
||||
|
Reference in New Issue
Block a user