rust - How do I send a file included with include_bytes! as an Iron response? -


i'm trying send file included in binary include_bytes! in iron application. want end single file application , needs few html, css , js files. here's small test setup i'm fiddling with:

extern crate iron;  use iron::prelude::*; use iron::status; use iron::mime::mime;  fn main() {     let index_html = include_bytes!("static/index.html");      println!("hello, world!");     iron::new(| _: &mut request| {         let content_type = "text/html".parse::<mime>().unwrap();         ok(response::with((content_type, status::ok, index_html)))     }).http("localhost:8001").unwrap(); } 

of course, doesn't work since index_html of type &[u8; 78]

src/main.rs:16:12: 16:26 error: trait `modifier::modifier<iron::response::response>` not implemented type `&[u8; 78]` [e0277] src/main.rs:16         ok(response::with((content_type, status::ok, index_html))) 

since i'm quite new rust , iron, don't have idea how approach this. tried learn iron docs think rust knowledge not sufficient understand them, modifier::modifier trait supposed be.

how can achieve this? can covert type of static resource iron accept or need implement modifier trait somehow?

the compiler suggests alternative impl:

src/main.rs:13:12: 13:26 help: following implementations found: src/main.rs:13:12: 13:26 help:   <&'a [u8] modifier::modifier<iron::response::response>> 

to ensure slice lives long enough, it's easier replace index_html variable global constant, , since must specify type of constants, let's specify &'static [u8].

extern crate iron;  use iron::prelude::*; use iron::status; use iron::mime::mime;  const index_html: &'static [u8] = include_bytes!("static/index.html");  fn main() {     println!("hello, world!");     iron::new(| _: &mut request| {         let content_type = "text/html".parse::<mime>().unwrap();         ok(response::with((content_type, status::ok, index_html)))     }).http("localhost:8001").unwrap(); } 

by way, tried find implementations modifier in documentation, think they're not listed, unfortunately. however, found implementations modifier<response> in the source iron::modifiers module.


Comments