From: Ian Jackson Date: Sun, 15 Nov 2020 18:45:43 +0000 (+0000) Subject: wip join-game etc. X-Git-Tag: otter-0.2.0~507 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bd36c1c75ecacf52aa47e933241b49a006dacaa4;p=otter.git wip join-game etc. Signed-off-by: Ian Jackson --- diff --git a/src/bin/otter.rs b/src/bin/otter.rs index f165f9c9..de765934 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -148,12 +148,20 @@ fn parse_args( pub fn ok_id(t: T) -> Result { Ok(t) } fn main() { + #[derive(Debug)] + struct RawAccess(Box); + impl Clone for RawAccess { + fn clone(&self) -> Self { + Self(serde_json::from_str(serde_json::to_string(&self.0))) + } + } + #[derive(Default,Debug)] struct RawMainArgs { account: Option, gaccount: Option, socket_path: Option, - access: Option>, + access: Option, verbose: i32, config_filename: Option, subcommand: String, @@ -175,7 +183,7 @@ fn main() { account.metavar("ACCOUNT").add_option(&["--account"], StoreOption, "use account ACCOUNT (default: unix::)"); - let urloso : Option> = Some(Box::new(UrlOnStdout)); + let urloso = Some(RawAccess(Box::new(UrlOnStdout))); let mut access = ap.refer(&mut rma.access); access.add_option(&["--url-on-stdout"], StoreConst(urloso), @@ -197,7 +205,7 @@ fn main() { "increase verbosity (default is short progress messages)"); access.metavar("TOKEN").add_option( &["--fixed-token"], - MapStore(|s| Box::new(FixedToken { token: RawToken (s.to_string()) })), + MapStore(|s| Ok(Some(RawAccess(Box::new(FixedToken { token: RawToken (s.to_string()) }))))), "use fixed game access token TOKEN (for administrators only)r" ); ap diff --git a/src/spec.rs b/src/spec.rs index 554f6e96..212be8d9 100644 --- a/src/spec.rs +++ b/src/spec.rs @@ -330,7 +330,6 @@ pub mod implementation { let inner = Html::from_txt(&format!("{:?}", self)); Html(format!("{}", inner.0)) } - fn clone_box(&self) } #[typetag::serde]