RFC: schema: make enums static

I don't see a reason to allow these to be dynamically
modifiable.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2019-05-23 11:27:45 +02:00
parent aa1b2e04fe
commit cc84a830c5
4 changed files with 7 additions and 7 deletions

View File

@ -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."))
)
}

View File

@ -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))

View File

@ -372,7 +372,7 @@ impl From<ArraySchema> for Arc<Schema> {
}
pub enum ApiStringFormat {
Enum(Vec<String>),
Enum(&'static [&'static str]),
Pattern(&'static Regex),
Complex(Arc<Schema>),
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<Schema> = ObjectSchema::new("Properties.")
.default_key("model")

View File

@ -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);