Merge pull request #174 from quodlibetor/deprecated-warnings-for-rustc_serialize
Deprecated warnings in cargo output for rustc-serialize feature
This commit is contained in:
commit
a060684abe
|
@ -8,6 +8,12 @@ Chrono obeys the principle of [Semantic Versioning](http://semver.org/).
|
||||||
There were/are numerous minor versions before 1.0 due to the language changes.
|
There were/are numerous minor versions before 1.0 due to the language changes.
|
||||||
Versions with only mechnical changes will be omitted from the following list.
|
Versions with only mechnical changes will be omitted from the following list.
|
||||||
|
|
||||||
|
## 0.4.next
|
||||||
|
|
||||||
|
* More strongly deprecate RustcSerialize: remove it from documentation unless
|
||||||
|
the feature is enabled, issue a deprecation warning if the rustc-serialize
|
||||||
|
feature is enabled (@quodlibetor)
|
||||||
|
|
||||||
## 0.4.1
|
## 0.4.1
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
13
README.md
13
README.md
|
@ -45,21 +45,14 @@ Put this in your `Cargo.toml`:
|
||||||
chrono = "0.4"
|
chrono = "0.4"
|
||||||
```
|
```
|
||||||
|
|
||||||
Or, if you want [Serde](https://github.com/serde-rs/serde) or
|
Or, if you want [Serde](https://github.com/serde-rs/serde) include the feature
|
||||||
[rustc-serialize](https://github.com/rust-lang-nursery/rustc-serialize) support,
|
like this:
|
||||||
include the features like this:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = { version = "0.4", features = ["serde", "rustc-serialize"] }
|
chrono = { version = "0.4", features = ["serde"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note that Chrono's support for rustc-serialize is now considered deprecated.
|
|
||||||
Starting from 0.4.0 there is no further guarantee that
|
|
||||||
the features available in Serde will be also available to rustc-serialize,
|
|
||||||
and the support can be removed in any future major version.
|
|
||||||
**Rustc-serialize users are strongly recommended to migrate to Serde.**
|
|
||||||
|
|
||||||
Then put this in your crate root:
|
Then put this in your crate root:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
|
|
@ -695,7 +695,9 @@ pub mod rustc_serialize {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl Decodable for TsSeconds<FixedOffset> {
|
impl Decodable for TsSeconds<FixedOffset> {
|
||||||
|
#[allow(deprecated)]
|
||||||
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<FixedOffset>, D::Error> {
|
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<FixedOffset>, D::Error> {
|
||||||
from(FixedOffset::east(0).timestamp_opt(d.read_i64()?, 0), d)
|
from(FixedOffset::east(0).timestamp_opt(d.read_i64()?, 0), d)
|
||||||
.map(TsSeconds)
|
.map(TsSeconds)
|
||||||
|
@ -717,13 +719,16 @@ pub mod rustc_serialize {
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct TsSeconds<Tz: TimeZone>(DateTime<Tz>);
|
pub struct TsSeconds<Tz: TimeZone>(DateTime<Tz>);
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl<Tz: TimeZone> From<TsSeconds<Tz>> for DateTime<Tz> {
|
impl<Tz: TimeZone> From<TsSeconds<Tz>> for DateTime<Tz> {
|
||||||
/// Pull the inner DateTime<Tz> out
|
/// Pull the inner DateTime<Tz> out
|
||||||
|
#[allow(deprecated)]
|
||||||
fn from(obj: TsSeconds<Tz>) -> DateTime<Tz> {
|
fn from(obj: TsSeconds<Tz>) -> DateTime<Tz> {
|
||||||
obj.0
|
obj.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl<Tz: TimeZone> Deref for TsSeconds<Tz> {
|
impl<Tz: TimeZone> Deref for TsSeconds<Tz> {
|
||||||
type Target = DateTime<Tz>;
|
type Target = DateTime<Tz>;
|
||||||
|
|
||||||
|
@ -732,6 +737,7 @@ pub mod rustc_serialize {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl Decodable for TsSeconds<Utc> {
|
impl Decodable for TsSeconds<Utc> {
|
||||||
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<Utc>, D::Error> {
|
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<Utc>, D::Error> {
|
||||||
from(Utc.timestamp_opt(d.read_i64()?, 0), d)
|
from(Utc.timestamp_opt(d.read_i64()?, 0), d)
|
||||||
|
@ -748,7 +754,9 @@ pub mod rustc_serialize {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl Decodable for TsSeconds<Local> {
|
impl Decodable for TsSeconds<Local> {
|
||||||
|
#[allow(deprecated)]
|
||||||
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<Local>, D::Error> {
|
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds<Local>, D::Error> {
|
||||||
from(Utc.timestamp_opt(d.read_i64()?, 0), d)
|
from(Utc.timestamp_opt(d.read_i64()?, 0), d)
|
||||||
.map(|dt| TsSeconds(dt.with_timezone(&Local)))
|
.map(|dt| TsSeconds(dt.with_timezone(&Local)))
|
||||||
|
|
|
@ -411,7 +411,8 @@ pub use oldtime::Duration;
|
||||||
#[doc(no_inline)] pub use naive::{NaiveDate, IsoWeek, NaiveTime, NaiveDateTime};
|
#[doc(no_inline)] pub use naive::{NaiveDate, IsoWeek, NaiveTime, NaiveDateTime};
|
||||||
pub use date::{Date, MIN_DATE, MAX_DATE};
|
pub use date::{Date, MIN_DATE, MAX_DATE};
|
||||||
pub use datetime::{DateTime, SecondsFormat};
|
pub use datetime::{DateTime, SecondsFormat};
|
||||||
#[cfg(feature = "rustc-serialize")] pub use datetime::rustc_serialize::TsSeconds;
|
#[cfg(feature = "rustc-serialize")]
|
||||||
|
pub use datetime::rustc_serialize::TsSeconds;
|
||||||
pub use format::{ParseError, ParseResult};
|
pub use format::{ParseError, ParseResult};
|
||||||
pub use round::SubsecRound;
|
pub use round::SubsecRound;
|
||||||
|
|
||||||
|
@ -451,6 +452,7 @@ pub mod naive {
|
||||||
pub use self::time::NaiveTime;
|
pub use self::time::NaiveTime;
|
||||||
pub use self::datetime::NaiveDateTime;
|
pub use self::datetime::NaiveDateTime;
|
||||||
#[cfg(feature = "rustc-serialize")]
|
#[cfg(feature = "rustc-serialize")]
|
||||||
|
#[allow(deprecated)]
|
||||||
pub use self::datetime::rustc_serialize::TsSeconds;
|
pub use self::datetime::rustc_serialize::TsSeconds;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1503,24 +1503,32 @@ pub mod rustc_serialize {
|
||||||
|
|
||||||
/// A `DateTime` that can be deserialized from a seconds-based timestamp
|
/// A `DateTime` that can be deserialized from a seconds-based timestamp
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
#[deprecated(since = "1.4.2",
|
||||||
|
note = "RustcSerialize will be removed before chrono 1.0, use Serde instead")]
|
||||||
pub struct TsSeconds(NaiveDateTime);
|
pub struct TsSeconds(NaiveDateTime);
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl From<TsSeconds> for NaiveDateTime {
|
impl From<TsSeconds> for NaiveDateTime {
|
||||||
/// Pull the internal NaiveDateTime out
|
/// Pull the internal NaiveDateTime out
|
||||||
|
#[allow(deprecated)]
|
||||||
fn from(obj: TsSeconds) -> NaiveDateTime {
|
fn from(obj: TsSeconds) -> NaiveDateTime {
|
||||||
obj.0
|
obj.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl Deref for TsSeconds {
|
impl Deref for TsSeconds {
|
||||||
type Target = NaiveDateTime;
|
type Target = NaiveDateTime;
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
&self.0
|
&self.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
impl Decodable for TsSeconds {
|
impl Decodable for TsSeconds {
|
||||||
|
#[allow(deprecated)]
|
||||||
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds, D::Error> {
|
fn decode<D: Decoder>(d: &mut D) -> Result<TsSeconds, D::Error> {
|
||||||
Ok(TsSeconds(
|
Ok(TsSeconds(
|
||||||
NaiveDateTime::from_timestamp_opt(d.read_i64()?, 0)
|
NaiveDateTime::from_timestamp_opt(d.read_i64()?, 0)
|
||||||
|
|
Loading…
Reference in New Issue