diff --git a/src/mako/cli/lib/engine.mako b/src/mako/cli/lib/engine.mako index 44709bde2b..c158eba11e 100644 --- a/src/mako/cli/lib/engine.mako +++ b/src/mako/cli/lib/engine.mako @@ -32,7 +32,7 @@ %>\ use cmn::{InvalidOptionsError, CLIError, JsonTokenStorage, arg_from_str, writer_from_opts, parse_kv_arg, input_file_from_opts, input_mime_from_opts, FieldCursor, FieldError, CallType, UploadProtocol, - protocol_from_str}; + calltype_from_str}; use std::default::Default; use std::str::FromStr; @@ -272,7 +272,7 @@ ${value_unwrap}\ % endif # handle call parameters % if mc.media_params: let vals = opt.values_of("${MODE_ARG}").unwrap(); -let protocol = protocol_from_str(vals[0], [${', '.join('"%s"' % mp.protocol for mp in mc.media_params)}].iter().map(|&v| v.to_string()).collect(), err); +let protocol = calltype_from_str(vals[0], [${', '.join('"%s"' % mp.protocol for mp in mc.media_params)}].iter().map(|&v| v.to_string()).collect(), err); let mut input_file = input_file_from_opts(vals[1], err); let mime_type = input_mime_from_opts(${opt_value(MIME_ARG, default=DEFAULT_MIME)}, err); % else: diff --git a/src/mako/cli/main.rs.mako b/src/mako/cli/main.rs.mako index 55de1750f1..35e1986fb4 100644 --- a/src/mako/cli/main.rs.mako +++ b/src/mako/cli/main.rs.mako @@ -15,6 +15,7 @@ #![feature(plugin, exit_status)] #![allow(unused_variables, unused_imports, dead_code, unused_mut)] +#[macro_use] extern crate clap; extern crate yup_oauth2 as oauth2; extern crate yup_hyper_mock as mock; diff --git a/src/rust/cli/cmn.rs b/src/rust/cli/cmn.rs index 1103c56f90..d4446ae60d 100644 --- a/src/rust/cli/cmn.rs +++ b/src/rust/cli/cmn.rs @@ -37,9 +37,11 @@ pub enum CallType { Standard, } -pub enum UploadProtocol { - Simple, - Resumable, +arg_enum!{ + pub enum UploadProtocol { + Simple, + Resumable + } } impl AsRef for UploadProtocol { @@ -60,18 +62,6 @@ impl AsRef for CallType { } } -impl FromStr for UploadProtocol { - type Err = String; - - fn from_str(s: &str) -> Result { - match s { - "simple" => Ok(UploadProtocol::Simple), - "resumable" => Ok(UploadProtocol::Resumable), - _ => Err(format!("Protocol '{}' is unknown", s)), - } - } -} - #[derive(Clone, Default)] pub struct FieldCursor(Vec); @@ -210,7 +200,7 @@ pub fn parse_kv_arg<'a>(kv: &'a str, err: &mut InvalidOptionsError, for_hashmap: } } -pub fn protocol_from_str(name: &str, valid_protocols: Vec, err: &mut InvalidOptionsError) -> CallType { +pub fn calltype_from_str(name: &str, valid_protocols: Vec, err: &mut InvalidOptionsError) -> CallType { CallType::Upload( match UploadProtocol::from_str(name) { Ok(up) => up,