chiark / gitweb /
set ct on updates
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 17 May 2020 00:53:11 +0000 (01:53 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 17 May 2020 00:53:11 +0000 (01:53 +0100)
src/imports.rs
src/main.rs

index 9950aaab502eb91e171be42b53b3fa40b3b1a390..2f8945de79a3818b6af816b2328facca9d986e48 100644 (file)
@@ -12,8 +12,9 @@ pub use rocket_contrib::helmet::*;
 pub use rocket_contrib::templates::Template;
 
 pub use rocket::State;
-pub use rocket::http::{Status,RawStr};
+pub use rocket::http::{Status,RawStr,ContentType};
 pub use rocket::request::{FromParam,FromRequest,FromFormValue,LenientForm};
 pub use rocket::response::NamedFile;
+pub use rocket::response;
 
 pub type E = anyhow::Error;
index 2945fcc6f8b3a98cbea6163e60abbfb9979798cf..e4cee117bbe1d3d42687a2c11977bb620afeb006 100644 (file)
@@ -40,6 +40,14 @@ impl<'r> FromParam<'r> for CheckedResourceLeaf {
   }
 }
 
+#[get("/updates")]
+fn updates() -> response::Content<response::Stream<&'static [u8]>> {
+  let ch = response::Stream::chunked(b"42".as_ref(), 1);
+  let ct = ContentType::parse_flexible("text/event-stream; charset=utf-8").
+    unwrap();
+  response::content::Content(ct,ch)
+}  
+
 #[get("/<leaf>")]
 fn resource(leaf : CheckedResourceLeaf) -> io::Result<NamedFile> {
   let template_dir = "templates"; // xxx
@@ -58,6 +66,7 @@ fn main() {
     .mount("/", routes![
       index,
       resource,
+      updates,
     ])
     .launch();
 }