diff --git a/src/api2/admin/datastore/backup.rs b/src/api2/admin/datastore/backup.rs index e0f5055e..fc3df43a 100644 --- a/src/api2/admin/datastore/backup.rs +++ b/src/api2/admin/datastore/backup.rs @@ -33,7 +33,7 @@ pub fn api_method_upgrade_backup() -> ApiAsyncMethod { ObjectSchema::new("Upgraded to backup protocol.") .required("store", StringSchema::new("Datastore name.")) .required("backup-type", StringSchema::new("Backup type.") - .format(Arc::new(ApiStringFormat::Enum(vec!["vm".into(), "ct".into(), "host".into()])))) + .format(Arc::new(ApiStringFormat::Enum(&["vm", "ct", "host"])))) .required("backup-id", StringSchema::new("Backup ID.")) ) } diff --git a/src/api2/admin/datastore/pxar.rs b/src/api2/admin/datastore/pxar.rs index d1162e47..d7cf821c 100644 --- a/src/api2/admin/datastore/pxar.rs +++ b/src/api2/admin/datastore/pxar.rs @@ -130,7 +130,7 @@ pub fn api_method_upload_pxar() -> ApiAsyncMethod { .required("store", StringSchema::new("Datastore name.")) .required("archive-name", StringSchema::new("Backup archive name.")) .required("backup-type", StringSchema::new("Backup type.") - .format(Arc::new(ApiStringFormat::Enum(vec!["ct".into(), "host".into()])))) + .format(Arc::new(ApiStringFormat::Enum(&["ct", "host"])))) .required("backup-id", StringSchema::new("Backup ID.")) .required("backup-time", IntegerSchema::new("Backup time (Unix epoch.)") .minimum(1547797308)) @@ -194,7 +194,7 @@ pub fn api_method_download_pxar() -> ApiAsyncMethod { .required("store", StringSchema::new("Datastore name.")) .required("archive-name", StringSchema::new("Backup archive name.")) .required("backup-type", StringSchema::new("Backup type.") - .format(Arc::new(ApiStringFormat::Enum(vec!["ct".into(), "host".into()])))) + .format(Arc::new(ApiStringFormat::Enum(&["ct", "host"])))) .required("backup-id", StringSchema::new("Backup ID.")) .required("backup-time", IntegerSchema::new("Backup time (Unix epoch.)") .minimum(1547797308)) diff --git a/src/api_schema/schema.rs b/src/api_schema/schema.rs index 0223860b..3d8a3347 100644 --- a/src/api_schema/schema.rs +++ b/src/api_schema/schema.rs @@ -372,7 +372,7 @@ impl From for Arc { } pub enum ApiStringFormat { - Enum(Vec), + Enum(&'static [&'static str]), Pattern(&'static Regex), Complex(Arc), VerifyFn(fn(&str) -> Result<(), Error>), @@ -744,7 +744,7 @@ fn test_query_string() { let schema = ObjectSchema::new("Parameters.") .required( "name", StringSchema::new("Name.") - .format(Arc::new(ApiStringFormat::Enum(vec!["ev1".into(), "ev2".into()]))) + .format(Arc::new(ApiStringFormat::Enum(&["ev1", "ev2"]))) ); let res = parse_query_string("name=noenum", &schema, true); @@ -873,7 +873,7 @@ fn test_verify_function() { fn test_verify_complex_object() { let nic_models = Arc::new(ApiStringFormat::Enum( - vec!["e1000".into(), "virtio".into()])); + &["e1000", "virtio"])); let param_schema: Arc = ObjectSchema::new("Properties.") .default_key("model") diff --git a/src/cli/command.rs b/src/cli/command.rs index 25a53f34..57c8fa8e 100644 --- a/src/cli/command.rs +++ b/src/cli/command.rs @@ -409,7 +409,7 @@ fn print_property_completion( } if let Schema::String(StringSchema { format: Some(format), ..} ) = schema { - if let ApiStringFormat::Enum(list) = format.as_ref() { + if let ApiStringFormat::Enum(list) = *format.as_ref() { for value in list { if value.starts_with(arg) { println!("{}", value);