2016-05-26 9 views
4

Ich arbeite an einem sehr einfachen HTTP-Client in Rust, gebaut auf der Oberseite der hyper (GitHub, crates.io) Kiste.Warum scheitern mehrere Importe aus der Hyper-Kiste?

Wenn ich versuche, die examples/client.rs Datei in einem neuen Cargo-Projekt zu replizieren cargo build mit (wie auch mit rustc src/main.rs), erhalte ich durch gescheitert Einfuhren verursachten mehrere Fehler von hyper.

Hier ist die Spitze meines main.rs:

extern crate hyper; 

use hyper::client::{Client, Request, Response, DefaultTransport as HttpStream}; 
use hyper::header::Connection; 
use hyper::{Decoder, Encoder, Next}; 

Der Rest der Datei ist, mit Ausnahme einiger Kommentare, identisch mit der examples/client.rs Datei aus dem hyper Repository.

Beim Kompilieren, ich die folgenden Fehlermeldungen erhalten:

src/main.rs:10:48: 10:78 error: unresolved import `hyper::client::DefaultTransport`. There is no `DefaultTransport` in `hyper::client` [E0432] 
src/main.rs:10 use hyper::client::{Client, Request, Response, DefaultTransport as HttpStream}; 
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
src/main.rs:10:48: 10:78 help: run `rustc --explain E0432` to see a detailed explanation 
src/main.rs:12:13: 12:20 error: unresolved import `hyper::Decoder`. There is no `Decoder` in `hyper` [E0432] 
src/main.rs:12 use hyper::{Decoder, Encoder, Next}; 
          ^~~~~~~ 
src/main.rs:12:13: 12:20 help: run `rustc --explain E0432` to see a detailed explanation 
src/main.rs:12:22: 12:29 error: unresolved import `hyper::Encoder`. There is no `Encoder` in `hyper` [E0432] 
src/main.rs:12 use hyper::{Decoder, Encoder, Next}; 
            ^~~~~~~ 
src/main.rs:12:22: 12:29 help: run `rustc --explain E0432` to see a detailed explanation 
src/main.rs:12:31: 12:35 error: unresolved import `hyper::Next`. There is no `Next` in `hyper` [E0432] 
src/main.rs:12 use hyper::{Decoder, Encoder, Next}; 
              ^~~~ 
src/main.rs:12:31: 12:35 help: run `rustc --explain E0432` to see a detailed explanation 
src/main.rs:53:6: 53:40 error: trait `hyper::client::Handler` is not in scope [E0405] 
src/main.rs:53 impl hyper::client::Handler<HttpStream> for Dump { 
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
src/main.rs:53:6: 53:40 help: run `rustc --explain E0405` to see a detailed explanation 
src/main.rs:53:6: 53:40 help: you can to import it into scope: `use hyper::server::Handler;`. 

Falls es zu diesem Thema beitragen können, sind hier die Inhalte meiner Cargo.toml:

name = "my_project" 
version = "0.0.1" 
authors = ["[email protected]"] 

[dependencies] 
getopts = "0.2" 
hyper = "0.9.6" 

[[bin]] 
name = "my_project" 

Einige der Importe tatsächlich funktioniert, also unter der Annahme, dass das Beispiel im Repository aktuell ist, kann ich wirklich nicht sagen, was falsch ist. Die Quelldateien der Kiste sehen so aus, als würden sie die involvierten Typen entlarven, aber ich bin sehr neu in Rust, so dass ich die Dateien vielleicht falsch interpretiere.

+0

Welche Version von Hyper verwenden Sie? – squiguy

+0

@squiguy 0.9.6, die neueste Version über crates.io. – Jules

Antwort

5

Sie verwenden Beispiele aus dem Master-Zweig, die nicht mit Version arbeiten. Sie können an Beispielen auf dem Ast 0.9.6 einen Blick oder Fracht Verwendung hyper direkt von Github machen, auf Cargo.toml Schreiben:

[dependencies]          
hyper = {git = "https://github.com/hyperium/hyper"} 
+0

Die Implementierung aus dem '0.9.6'-Zweig funktioniert. Vielen Dank! – Jules

Verwandte Themen