protocol encodable rust

rust - protocol - ¿Cómo soluciono la desactivación Encodable/Decodable?



swift 4 encodable (3)

Al menos con 1.0.0-alpha, la versión 0.1.5 siempre se descarga, incluso si especifica la versión en Cargo.toml. Esa versión no compila contra el alfa:

Compiling rustc-serialize v0.1.5 /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:175:42: 175:47 error: obsolete syntax: for Sized? /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:175 pub trait Encodable, E> for Sized? { ^~~~~ note: no longer required. Traits (and their `Self` type) do not have the `Sized` bound by default /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:381:35: 381:36 error: obsolete syntax: `Sized? T` syntax for removing the `Sized` bound /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:381 impl, Sized? T: Encodable> Encodable for &''a T { ^ note: write `T: ?Sized` instead /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:387:31: 387:32 error: obsolete syntax: `Sized? T` syntax for removing the `Sized` bound /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/serialize.rs:387 impl, Sized? T: Encodable> Encodable for Box { ^ /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/base64.rs:73:24: 73:29 error: obsolete syntax: for Sized? /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/base64.rs:73 pub trait ToBase64 for Sized? { ^~~~~ note: no longer required. Traits (and their `Self` type) do not have the `Sized` bound by default /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/base64.rs:173:26: 173:31 error: obsolete syntax: for Sized? /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/base64.rs:173 pub trait FromBase64 for Sized? { ^~~~~ /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/hex.rs:21:21: 21:26 error: obsolete syntax: for Sized? /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/hex.rs:21 pub trait ToHex for Sized? { ^~~~~ note: no longer required. Traits (and their `Self` type) do not have the `Sized` bound by default /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/hex.rs:57:23: 57:28 error: obsolete syntax: for Sized? /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/hex.rs:57 pub trait FromHex for Sized? { ^~~~~ /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/json.rs:396:30: 396:33 error: expected identifier, found keyword `mut` /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/json.rs:396 escape_bytes(writer, buf[mut ..len]) ^~~ /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/json.rs:401:20: 401:21 error: expected one of `(`, `+`, `::`, `;`, or `]`, found `,` /home/jsakkine/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.1.5/src/json.rs:401 static BUF: [u8, ..LEN] = [b'' '', ..LEN]; ^ Could not compile `rustc-serialize`. To learn more, run the command again with --verbose.

Algunos repos (ej. Https://github.com/sebcrozet/nalgebra ) tienen errores a lo largo de las líneas de

warning: deriving(Decodable) is deprecated in favor of deriving(RustcDecodable).

Reemplazar RustcDecodable con RustcDecodable causes

error: attempt to bound type parameter with a nonexistent trait `rustc_serialize::Decoder`

¿Cómo los actualizo?


Creo que su error proviene de este compromiso :

Esta confirmación completa la historia de desaprobación de la biblioteca de serialización en el árbol. El compilador emitirá ahora una advertencia cada vez que encuentre deriving(Encodable) o deriving(Decodable) , y la biblioteca misma ahora está marcada como #[unstable] para cuando se habilite la organización de entidades.

Todos los usuarios de la serialización pueden migrar a la caja rustc-serialize en crates.io, que proporciona la misma interfaz exacta que la biblioteca libserialize en el árbol. Los nuevos modos de derivación se denominan RustcEncodable y RustcDecodable y requieren que extern crate "rustc-serialize" as rustc_serialize en la raíz del cajón para que se expanda correctamente.

Para migrar todas las cajas, agregue lo siguiente a su Cargo.toml :

[dependencies] rustc-serialize = "0.1.1"

Y luego agregue lo siguiente a su raíz de caja:

extern crate "rustc-serialize" as rustc_serialize;

Finalmente, cambie el nombre de los modos de derivación RustcEncodable y RustcDecodable a RustcEncodable y RustcDecodable .


Lo conseguí trabajando utilizando la versión 0.2 de rustc-serialize:

[dependencies] rustc-serialize = "0.2"