chiark / gitweb /
support /p too
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 27 Nov 2020 00:55:09 +0000 (00:55 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 27 Nov 2020 00:55:17 +0000 (00:55 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/api.rs
src/bin/daemon-otter.rs
src/imports.rs

index 7a59ca2cb786f400bc88b819ba16a880904cacbb..64632f31b93058e772b6604cba068b2ae7e99a79 100644 (file)
@@ -36,6 +36,20 @@ impl PresentationLayout {
   }
 }
 
+pub struct AbbrevPresentationLayout(pub PresentationLayout);
+
+impl<'r> FromParam<'r> for AbbrevPresentationLayout {
+  type Error = ();
+  #[throws(Self::Error)]
+  fn from_param(param: &'r RawStr) -> Self {
+    AbbrevPresentationLayout(match param.as_str() {
+      "p "=> PL::Portrait,
+      "l" => PL::Landscape,
+      _ => throw!(())
+    })
+  }
+}
+
 #[derive(Debug,Serialize,Deserialize)]
 struct ApiPiece<O : ApiPieceOp> {
   ctoken : RawToken,
index b681f4ff1b064c61338ad905391f0d7ac8431683..ab337ef4a5f7ee40cc3f7b807fbdfadd1519e656 100644 (file)
@@ -66,10 +66,11 @@ fn loading_p(ptoken: WholeQueryString) -> Template {
   loading(PresentationLayout::Portrait, ptoken)?
 }
 // xxx also do p, make it an account/player property
-#[get("/l")]
+#[get("/<layout>")]
 #[throws(OE)]
-fn loading_l(ptoken: WholeQueryString) -> Template {
-  loading(PresentationLayout::Landscape, ptoken)?
+fn loading_l(layout: AbbrevPresentationLayout, ptoken: WholeQueryString)
+             -> Template {
+  loading(layout.0, ptoken)?
 }
 
 #[throws(OE)]
index d53231217195c16ef2c8dc931dbd2a7796cc526c..cf5d5c97cd57fbde017be6a977eaeb9a89c5d9be 100644 (file)
@@ -126,7 +126,7 @@ pub use crate::slotmap_slot_idx::*;
 pub use crate::cmdlistener::*;
 pub use crate::mgmtchannel::*;
 pub use crate::api::{Lens,TransparentLens,ApiPieceOpError};
-pub use crate::api::{PresentationLayout};
+pub use crate::api::{PresentationLayout,AbbrevPresentationLayout};
 pub use crate::utils::*;
 pub use crate::spec::*;
 pub use crate::debugreader::DebugReader;