iron / staticfile

Static file-serving middleware for the Iron web framework.
MIT License
63 stars 56 forks source link

Router example currently fails #72

Closed SirVer closed 8 years ago

SirVer commented 8 years ago

On a fresh checkout, running cargo run --example router yields these errors:

    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling language-tags v0.2.2
   Compiling traitobject v0.0.1
   Compiling matches v0.1.2
   Compiling sequence_trie v0.0.13
   Compiling modifier v0.1.0
   Compiling winapi v0.2.6
   Compiling pkg-config v0.3.8
   Compiling traitobject v0.0.3
   Compiling libc v0.2.8
   Compiling lazy_static v0.1.15
   Compiling unicode-bidi v0.2.3
   Compiling unsafe-any v0.4.1
   Compiling httparse v1.1.1
   Compiling typemap v0.3.3
   Compiling typeable v0.1.2
   Compiling semver v0.1.20
   Compiling unicode-normalization v0.1.2
   Compiling rustc-serialize v0.3.18
   Compiling gcc v0.3.26
   Compiling openssl-sys v0.7.8
   Compiling num_cpus v0.2.11
   Compiling rand v0.3.14
   Compiling log v0.3.5
   Compiling route-recognizer v0.1.11
   Compiling rustc_version v0.1.7
   Compiling plugin v0.2.6
   Compiling winapi-build v0.1.1
   Compiling mime v0.2.0
   Compiling hpack v0.2.0
   Compiling openssl v0.7.8
   Compiling openssl-sys-extras v0.7.8
   Compiling unicase v1.4.0
   Compiling kernel32-sys v0.2.1
   Compiling time v0.1.34
   Compiling num v0.1.31
   Compiling error v0.1.9
   Compiling bitflags v0.4.0
   Compiling solicit v0.4.4
   Compiling serde v0.6.15
   Compiling conduit-mime-types v0.7.3
   Compiling uuid v0.1.18
   Compiling url v0.5.7
   Compiling mime v0.1.3
   Compiling cookie v0.2.2
   Compiling hyper v0.7.2
   Compiling hyper v0.8.0
   Compiling iron v0.3.0
   Compiling iron v0.2.6
   Compiling router v0.1.1
   Compiling iron-test v0.2.0
   Compiling mount v0.0.10
   Compiling staticfile v0.1.0 (file:///private/tmp/staticfile)
examples/router.rs:38:10: 38:13 error: type mismatch: the type `fn(&mut iron::request::Request<'_, '_>) -> core::result::Result<iron::response::Response, iron::error::IronError> {say_hello}` implements the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>`, but the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>` is required (expected struct `iron::request::Request`, found a different struct `iron::request::Request`) [E0281]
examples/router.rs:38         .get("/hello", say_hello);
                               ^~~
examples/router.rs:38:10: 38:13 help: run `rustc --explain E0281` to see a detailed explanation
examples/router.rs:42:10: 42:15 error: the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>` is not implemented for the type `router::router::Router` [E0277]
examples/router.rs:42         .mount("/", router)
                               ^~~~~
examples/router.rs:42:10: 42:15 help: run `rustc --explain E0277` to see a detailed explanation
error: aborting due to 2 previous errors
error: Could not compile `staticfile`.
SirVer commented 8 years ago

This is on cargo 0.10.0-nightly (132b82d 2016-03-19) using multirust.

SirVer commented 8 years ago

Output for stable: cargo 0.8.0-nightly (28a0cbb 2016-01-17)

    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading user32-sys v0.1.2
 Downloading openssl-sys v0.7.8
 Downloading libressl-pnacl-sys v2.1.6
 Downloading gcc v0.3.26
 Downloading openssl-sys-extras v0.7.8
 Downloading pkg-config v0.3.8
 Downloading bitflags v0.4.0
 Downloading pnacl-build-helper v1.4.10
 Downloading gdi32-sys v0.1.1
 Downloading openssl v0.7.8
 Downloading iron-test v0.2.0
 Downloading tempdir v0.3.4
   Compiling matches v0.1.2
   Compiling bitflags v0.4.0
   Compiling typeable v0.1.2
   Compiling pkg-config v0.3.8
   Compiling libc v0.2.8
   Compiling sequence_trie v0.0.13
   Compiling rustc-serialize v0.3.18
   Compiling traitobject v0.0.1
   Compiling winapi v0.2.6
   Compiling language-tags v0.2.2
   Compiling route-recognizer v0.1.11
   Compiling lazy_static v0.1.15
   Compiling unicode-normalization v0.1.2
   Compiling num v0.1.31
   Compiling semver v0.1.20
   Compiling rand v0.3.14
   Compiling log v0.3.5
   Compiling openssl-sys v0.7.8
   Compiling hpack v0.2.0
   Compiling httparse v1.1.1
   Compiling rustc_version v0.1.7
   Compiling traitobject v0.0.3
   Compiling modifier v0.1.0
   Compiling unsafe-any v0.4.1
   Compiling error v0.1.9
   Compiling typemap v0.3.3
   Compiling num_cpus v0.2.11
   Compiling unicode-bidi v0.2.3
   Compiling plugin v0.2.6
   Compiling mime v0.2.0
   Compiling unicase v1.4.0
   Compiling gcc v0.3.26
   Compiling winapi-build v0.1.1
   Compiling kernel32-sys v0.2.1
   Compiling solicit v0.4.4
   Compiling time v0.1.34
   Compiling serde v0.6.15
   Compiling openssl v0.7.8
   Compiling openssl-sys-extras v0.7.8
   Compiling conduit-mime-types v0.7.3
   Compiling uuid v0.1.18
   Compiling url v0.5.7
   Compiling mime v0.1.3
   Compiling cookie v0.2.2
   Compiling hyper v0.7.2
   Compiling hyper v0.8.0
   Compiling iron v0.3.0
   Compiling iron v0.2.6
   Compiling router v0.1.1
   Compiling mount v0.0.10
   Compiling iron-test v0.2.0
   Compiling staticfile v0.1.0 (file:///private/tmp/staticfile)
examples/router.rs:38:10: 38:34 error: type mismatch: the type `fn(&mut iron::request::Request<'_, '_>) -> core::result::Result<iron::response::Response, iron::error::IronError> {say_hello}` implements the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>`, but the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>` is required (expected struct `iron::request::Request`, found a different struct `iron::request::Request`) [E0281]
examples/router.rs:38         .get("/hello", say_hello);
                               ^~~~~~~~~~~~~~~~~~~~~~~~
examples/router.rs:38:10: 38:34 help: run `rustc --explain E0281` to see a detailed explanation
examples/router.rs:38:10: 38:34 error: type mismatch: the type `fn(&mut iron::request::Request<'_, '_>) -> core::result::Result<iron::response::Response, iron::error::IronError> {say_hello}` implements the trait `for<'r, 'r, 'r> core::ops::FnOnce<(&'r mut iron::request::Request<'r, 'r>,)>`, but the trait `for<'r, 'r, 'r> core::ops::FnOnce<(&'r mut iron::request::Request<'r, 'r>,)>` is required (expected struct `iron::request::Request`, found a different struct `iron::request::Request`) [E0281]
examples/router.rs:38         .get("/hello", say_hello);
                               ^~~~~~~~~~~~~~~~~~~~~~~~
examples/router.rs:38:10: 38:34 help: run `rustc --explain E0281` to see a detailed explanation
examples/router.rs:42:10: 42:28 error: the trait `for<'r, 'r, 'r> core::ops::Fn<(&'r mut iron::request::Request<'r, 'r>,)>` is not implemented for the type `router::router::Router` [E0277]
examples/router.rs:42         .mount("/", router)
                               ^~~~~~~~~~~~~~~~~~
examples/router.rs:42:10: 42:28 help: run `rustc --explain E0277` to see a detailed explanation
examples/router.rs:42:10: 42:28 error: the trait `for<'r, 'r, 'r> core::ops::FnOnce<(&'r mut iron::request::Request<'r, 'r>,)>` is not implemented for the type `router::router::Router` [E0277]
examples/router.rs:42         .mount("/", router)
                               ^~~~~~~~~~~~~~~~~~
examples/router.rs:42:10: 42:28 help: run `rustc --explain E0277` to see a detailed explanation
error: aborting due to 4 previous errors
Could not compile `staticfile`.
untitaker commented 8 years ago

Please downgrade to router 1.0.0 :(

SirVer commented 8 years ago

That does indeed fix it. But should this not work with iron 0.3 as well?

untitaker commented 8 years ago

Yes, but staticfile currently pins iron to 0.2.

I'm trying to update, but don't have permissions to do so.

SirVer commented 8 years ago

so does mount, it seems.

untitaker commented 8 years ago

cc @reem

untitaker commented 8 years ago

This is now fixed with staticfile=0.2.0