How do I fix Encodable/Decodable deprecation?

后端 未结 3 1514
灰色年华
灰色年华 2021-01-24 13:07

A few repos (e.g. https://github.com/sebcrozet/nalgebra) have errors along the lines of

warning: deriving(Decodable) is deprecated in favor of deriving(RustcDeco         


        
3条回答
  •  渐次进展
    2021-01-24 13:34

    I believe that your error comes from this commit:

    This commit completes the deprecation story for the in-tree serialization library. The compiler will now emit a warning whenever it encounters deriving(Encodable) or deriving(Decodable), and the library itself is now marked #[unstable] for when feature staging is enabled.

    All users of serialization can migrate to the rustc-serialize crate on crates.io which provides the exact same interface as the libserialize library in-tree. The new deriving modes are named RustcEncodable and RustcDecodable and require extern crate "rustc-serialize" as rustc_serialize at the crate root in order to expand correctly.

    To migrate all crates, add the following to your Cargo.toml:

    [dependencies]
    rustc-serialize = "0.1.1"
    

    And then add the following to your crate root:

    extern crate "rustc-serialize" as rustc_serialize;
    

    Finally, rename Encodable and Decodable deriving modes to RustcEncodable and RustcDecodable.

提交回复
热议问题