From bd36c1c75ecacf52aa47e933241b49a006dacaa4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 15 Nov 2020 18:45:43 +0000 Subject: [PATCH] wip join-game etc. Signed-off-by: Ian Jackson --- src/bin/otter.rs | 14 +++++++++++--- src/spec.rs | 1 - 2 files changed, 11 insertions(+), 4 deletions(-) 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] -- 2.30.2