mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-28 21:41:24 +00:00
Fix the non-readble IpAddr serialize implementations
This commit is contained in:
parent
c2474bf6ee
commit
85c05d301a
@ -513,8 +513,10 @@ impl Serialize for net::IpAddr {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
match *self {
|
match *self {
|
||||||
net::IpAddr::V4(ref a) => (0u8, a).serialize(serializer),
|
net::IpAddr::V4(ref a) =>
|
||||||
net::IpAddr::V6(ref a) => (1u8, a).serialize(serializer),
|
serializer.serialize_newtype_variant("IpAddr", 0, "V4", a),
|
||||||
|
net::IpAddr::V6(ref a) =>
|
||||||
|
serializer.serialize_newtype_variant("IpAddr", 1, "V6", a),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -558,9 +560,18 @@ impl Serialize for net::SocketAddr {
|
|||||||
where
|
where
|
||||||
S: Serializer,
|
S: Serializer,
|
||||||
{
|
{
|
||||||
match *self {
|
if serializer.is_human_readable() {
|
||||||
net::SocketAddr::V4(ref addr) => addr.serialize(serializer),
|
match *self {
|
||||||
net::SocketAddr::V6(ref addr) => addr.serialize(serializer),
|
net::SocketAddr::V4(ref addr) => addr.serialize(serializer),
|
||||||
|
net::SocketAddr::V6(ref addr) => addr.serialize(serializer),
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
match *self {
|
||||||
|
net::SocketAddr::V4(ref addr) =>
|
||||||
|
serializer.serialize_newtype_variant("SocketAddr", 0, "V4", addr),
|
||||||
|
net::SocketAddr::V6(ref addr) =>
|
||||||
|
serializer.serialize_newtype_variant("SocketAddr", 1, "V6", addr),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -426,8 +426,19 @@ declare_non_human_readable_tests!{
|
|||||||
Token::TupleEnd,
|
Token::TupleEnd,
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
test_non_human_readable_net_ipaddr {
|
||||||
|
net::IpAddr::from(*b"1234") => &seq![
|
||||||
|
Token::NewtypeVariant { name: "IpAddr", variant: "V4" },
|
||||||
|
|
||||||
|
Token::Tuple { len: 4 },
|
||||||
|
seq b"1234".iter().map(|&b| Token::U8(b)),
|
||||||
|
Token::TupleEnd,
|
||||||
|
],
|
||||||
|
}
|
||||||
test_non_human_readable_net_socketaddr {
|
test_non_human_readable_net_socketaddr {
|
||||||
net::SocketAddr::from((*b"1234567890123456", 1234)) => &seq![
|
net::SocketAddr::from((*b"1234567890123456", 1234)) => &seq![
|
||||||
|
Token::NewtypeVariant { name: "SocketAddr", variant: "V6" },
|
||||||
|
|
||||||
Token::Tuple { len: 2 },
|
Token::Tuple { len: 2 },
|
||||||
|
|
||||||
Token::Tuple { len: 16 },
|
Token::Tuple { len: 16 },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user