Merge pull request #122 from KodrAus/chore/serde-0.9
Update for serde 0.9
This commit is contained in:
commit
895b92e533
|
@ -3,7 +3,7 @@ sudo: false
|
|||
rust:
|
||||
# 1.8.0 is the earliest known version that Cargo does work for the current crates.io-index repo.
|
||||
# probably older versions work, but we are forced to use this as the minimum for Cargo...
|
||||
- 1.8.0
|
||||
- 1.13.0
|
||||
- stable
|
||||
- beta
|
||||
- nightly
|
||||
|
|
|
@ -18,8 +18,8 @@ name = "chrono"
|
|||
time = "0.1"
|
||||
num = { version = "0.1", default-features = false }
|
||||
rustc-serialize = { version = "0.3", optional = true }
|
||||
serde = { version = "<0.9", optional = true }
|
||||
serde = { version = "0.9", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = { version = ">=0.7.0" }
|
||||
bincode = { version = "0.6", features = ["serde"], default-features = false }
|
||||
serde_json = { version = ">=0.9.0" }
|
||||
bincode = { version = "1.0.0-alpha1", features = ["serde"], default-features = false }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
environment:
|
||||
matrix:
|
||||
- TARGET: 1.8.0-x86_64-pc-windows-gnu
|
||||
- TARGET: 1.13.0-x86_64-pc-windows-gnu
|
||||
- TARGET: nightly-x86_64-pc-windows-msvc
|
||||
- TARGET: nightly-i686-pc-windows-msvc
|
||||
- TARGET: nightly-x86_64-pc-windows-gnu
|
||||
|
|
|
@ -472,6 +472,7 @@ mod rustc_serialize {
|
|||
|
||||
#[cfg(feature = "serde")]
|
||||
mod serde {
|
||||
use std::fmt;
|
||||
use super::DateTime;
|
||||
use offset::TimeZone;
|
||||
use offset::utc::UTC;
|
||||
|
@ -485,7 +486,7 @@ mod serde {
|
|||
impl<Tz: TimeZone> ser::Serialize for DateTime<Tz>
|
||||
where Tz::Offset: Display
|
||||
{
|
||||
fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error>
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where S: ser::Serializer
|
||||
{
|
||||
// Debug formatting is correct RFC3339, and it allows Zulu.
|
||||
|
@ -498,7 +499,12 @@ mod serde {
|
|||
impl de::Visitor for DateTimeVisitor {
|
||||
type Value = DateTime<FixedOffset>;
|
||||
|
||||
fn visit_str<E>(&mut self, value: &str) -> Result<DateTime<FixedOffset>, E>
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result
|
||||
{
|
||||
write!(formatter, "a formatted date and time string")
|
||||
}
|
||||
|
||||
fn visit_str<E>(self, value: &str) -> Result<DateTime<FixedOffset>, E>
|
||||
where E: de::Error
|
||||
{
|
||||
value.parse().map_err(|err| E::custom(format!("{}", err)))
|
||||
|
@ -506,7 +512,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for DateTime<FixedOffset> {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(DateTimeVisitor)
|
||||
|
@ -514,7 +520,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for DateTime<UTC> {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(DateTimeVisitor).map(|dt| dt.with_timezone(&UTC))
|
||||
|
@ -522,7 +528,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for DateTime<Local> {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(DateTimeVisitor).map(|dt| dt.with_timezone(&Local))
|
||||
|
|
|
@ -1562,13 +1562,14 @@ mod rustc_serialize {
|
|||
|
||||
#[cfg(feature = "serde")]
|
||||
mod serde {
|
||||
use std::fmt;
|
||||
use super::NaiveDate;
|
||||
use serde::{ser, de};
|
||||
|
||||
// TODO not very optimized for space (binary formats would want something better)
|
||||
|
||||
impl ser::Serialize for NaiveDate {
|
||||
fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error>
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where S: ser::Serializer
|
||||
{
|
||||
serializer.serialize_str(&format!("{:?}", self))
|
||||
|
@ -1580,7 +1581,12 @@ mod serde {
|
|||
impl de::Visitor for NaiveDateVisitor {
|
||||
type Value = NaiveDate;
|
||||
|
||||
fn visit_str<E>(&mut self, value: &str) -> Result<NaiveDate, E>
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result
|
||||
{
|
||||
write!(formatter, "a formatted date string")
|
||||
}
|
||||
|
||||
fn visit_str<E>(self, value: &str) -> Result<NaiveDate, E>
|
||||
where E: de::Error
|
||||
{
|
||||
value.parse().map_err(|err| E::custom(format!("{}", err)))
|
||||
|
@ -1588,7 +1594,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for NaiveDate {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(NaiveDateVisitor)
|
||||
|
|
|
@ -1416,13 +1416,14 @@ mod rustc_serialize {
|
|||
|
||||
#[cfg(feature = "serde")]
|
||||
mod serde {
|
||||
use std::fmt;
|
||||
use super::NaiveDateTime;
|
||||
use serde::{ser, de};
|
||||
|
||||
// TODO not very optimized for space (binary formats would want something better)
|
||||
|
||||
impl ser::Serialize for NaiveDateTime {
|
||||
fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error>
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where S: ser::Serializer
|
||||
{
|
||||
serializer.serialize_str(&format!("{:?}", self))
|
||||
|
@ -1434,7 +1435,12 @@ mod serde {
|
|||
impl de::Visitor for NaiveDateTimeVisitor {
|
||||
type Value = NaiveDateTime;
|
||||
|
||||
fn visit_str<E>(&mut self, value: &str) -> Result<NaiveDateTime, E>
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result
|
||||
{
|
||||
write!(formatter, "a formatted date and time string")
|
||||
}
|
||||
|
||||
fn visit_str<E>(self, value: &str) -> Result<NaiveDateTime, E>
|
||||
where E: de::Error
|
||||
{
|
||||
value.parse().map_err(|err| E::custom(format!("{}", err)))
|
||||
|
@ -1442,7 +1448,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for NaiveDateTime {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(NaiveDateTimeVisitor)
|
||||
|
|
|
@ -1309,6 +1309,7 @@ mod rustc_serialize {
|
|||
|
||||
#[cfg(feature = "serde")]
|
||||
mod serde {
|
||||
use std::fmt;
|
||||
use super::NaiveTime;
|
||||
use serde::{ser, de};
|
||||
|
||||
|
@ -1316,7 +1317,7 @@ mod serde {
|
|||
// TODO round-trip for general leap seconds (not just those with second = 60)
|
||||
|
||||
impl ser::Serialize for NaiveTime {
|
||||
fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error>
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where S: ser::Serializer
|
||||
{
|
||||
serializer.serialize_str(&format!("{:?}", self))
|
||||
|
@ -1328,7 +1329,12 @@ mod serde {
|
|||
impl de::Visitor for NaiveTimeVisitor {
|
||||
type Value = NaiveTime;
|
||||
|
||||
fn visit_str<E>(&mut self, value: &str) -> Result<NaiveTime, E>
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result
|
||||
{
|
||||
write!(formatter, "a formatted time string")
|
||||
}
|
||||
|
||||
fn visit_str<E>(self, value: &str) -> Result<NaiveTime, E>
|
||||
where E: de::Error
|
||||
{
|
||||
value.parse().map_err(|err| E::custom(format!("{}", err)))
|
||||
|
@ -1336,7 +1342,7 @@ mod serde {
|
|||
}
|
||||
|
||||
impl de::Deserialize for NaiveTime {
|
||||
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error>
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where D: de::Deserializer
|
||||
{
|
||||
deserializer.deserialize_str(NaiveTimeVisitor)
|
||||
|
|
Loading…
Reference in New Issue