Skip to content

Commit 0e5d3ab

Browse files
committed
serde 0.9
1 parent dcb708d commit 0e5d3ab

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repository = "https://github.com/reem/rust-ordered-float"
99

1010
[dependencies]
1111
num-traits = { version = "0.1", default_features = false }
12-
serde = { version = "0.8", optional = true }
12+
serde = { version = "0.9", optional = true }
1313
rustc-serialize = { version = "0.3", optional = true }
1414
unreachable = "0.1"
1515

src/lib.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -596,33 +596,34 @@ mod impl_rustc {
596596
mod impl_serde {
597597
extern crate serde;
598598
use self::serde::{Serialize, Serializer, Deserialize, Deserializer};
599-
use self::serde::de::Error;
599+
use self::serde::de::{Error, Unexpected};
600600
use super::{OrderedFloat, NotNaN};
601601
use num_traits::Float;
602+
use std::f64;
602603

603604
impl<T: Float + Serialize> Serialize for OrderedFloat<T> {
604-
fn serialize<S: Serializer>(&self, s: &mut S) -> Result<(), S::Error> {
605+
fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
605606
self.0.serialize(s)
606607
}
607608
}
608609

609610
impl<T: Float + Deserialize> Deserialize for OrderedFloat<T> {
610-
fn deserialize<D: Deserializer>(d: &mut D) -> Result<Self, D::Error> {
611+
fn deserialize<D: Deserializer>(d: D) -> Result<Self, D::Error> {
611612
T::deserialize(d).map(OrderedFloat)
612613
}
613614
}
614615

615616
impl<T: Float + Serialize> Serialize for NotNaN<T> {
616-
fn serialize<S: Serializer>(&self, s: &mut S) -> Result<(), S::Error> {
617+
fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
617618
self.0.serialize(s)
618619
}
619620
}
620621

621622
impl<T: Float + Deserialize> Deserialize for NotNaN<T> {
622-
fn deserialize<D: Deserializer>(d: &mut D) -> Result<Self, D::Error> {
623+
fn deserialize<D: Deserializer>(d: D) -> Result<Self, D::Error> {
623624
T::deserialize(d).and_then(|v| {
624625
NotNaN::new(v)
625-
.map_err(|_| <D::Error as Error>::invalid_value("value cannot be NaN"))
626+
.map_err(|_| <D::Error as Error>::invalid_value(Unexpected::Float(f64::NAN), &"NaN"))
626627
})
627628
}
628629
}

0 commit comments

Comments
 (0)