From b2cda48e139d5b599b813601ad806420f1f3757a Mon Sep 17 00:00:00 2001 From: Bastien Orivel Date: Fri, 16 Mar 2018 20:15:53 +0100 Subject: Bump syn to 0.12 and quote to 0.4 --- validator_derive/src/validation.rs | 70 +++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'validator_derive/src/validation.rs') diff --git a/validator_derive/src/validation.rs b/validator_derive/src/validation.rs index bbec9d6..b5c7b78 100644 --- a/validator_derive/src/validation.rs +++ b/validator_derive/src/validation.rs @@ -31,7 +31,7 @@ impl FieldValidation { } } -pub fn extract_length_validation(field: String, meta_items: &Vec) -> FieldValidation { +pub fn extract_length_validation(field: String, meta_items: &Vec) -> FieldValidation { let mut min = None; let mut max = None; let mut equal = None; @@ -43,31 +43,31 @@ pub fn extract_length_validation(field: String, meta_items: &Vec continue, "min" => { - min = match lit_to_int(val) { + min = match lit_to_int(lit) { Some(s) => Some(s), None => error("invalid argument type for `min` of `length` validator: only integers are allowed"), }; }, "max" => { - max = match lit_to_int(val) { + max = match lit_to_int(lit) { Some(s) => Some(s), None => error("invalid argument type for `max` of `length` validator: only integers are allowed"), }; }, "equal" => { - equal = match lit_to_int(val) { + equal = match lit_to_int(lit) { Some(s) => Some(s), None => error("invalid argument type for `equal` of `length` validator: only integers are allowed"), }; }, - _ => error(&format!( + v => error(&format!( "unknown argument `{}` for validator `length` (it only has `min`, `max`, `equal`)", - name.to_string() + v )) } } else { @@ -91,7 +91,7 @@ pub fn extract_length_validation(field: String, meta_items: &Vec) -> FieldValidation { +pub fn extract_range_validation(field: String, meta_items: &Vec) -> FieldValidation { let mut min = 0.0; let mut max = 0.0; @@ -107,27 +107,27 @@ pub fn extract_range_validation(field: String, meta_items: &Vec match *item { - syn::MetaItem::NameValue(ref name, ref val) => { - match name.to_string().as_ref() { + syn::NestedMeta::Meta(ref item) => match *item { + syn::Meta::NameValue(syn::MetaNameValue { ref ident, ref lit, .. }) => { + match ident.as_ref() { "message" | "code" => continue, "min" => { - min = match lit_to_float(val) { + min = match lit_to_float(lit) { Some(s) => s, None => error("invalid argument type for `min` of `range` validator: only integers are allowed") }; has_min = true; }, "max" => { - max = match lit_to_float(val) { + max = match lit_to_float(lit) { Some(s) => s, None => error("invalid argument type for `max` of `range` validator: only integers are allowed") }; has_max = true; }, - _ => error(&format!( + v => error(&format!( "unknown argument `{}` for validator `range` (it only has `min`, `max`)", - name.to_string() + v )) } }, @@ -150,18 +150,18 @@ pub fn extract_range_validation(field: String, meta_items: &Vec) -> FieldValidation { +pub fn extract_argless_validation(validator_name: String, field: String, meta_items: &Vec) -> FieldValidation { let (message, code) = extract_message_and_code(&validator_name, &field, meta_items); for meta_item in meta_items { match *meta_item { - syn::NestedMetaItem::MetaItem(ref item) => match *item { - syn::MetaItem::NameValue(ref name, ref val) => { - match name.to_string().as_ref() { + syn::NestedMeta::Meta(ref item) => match *item { + syn::Meta::NameValue(syn::MetaNameValue { ref ident, .. }) => { + match ident.as_ref() { "message" | "code" => continue, - _ => panic!( + v => panic!( "Unknown argument `{}` for validator `{}` on field `{}`", - name.to_string(), validator_name, field + v, validator_name, field ) } }, @@ -187,18 +187,18 @@ pub fn extract_argless_validation(validator_name: String, field: String, meta_it } /// For custom, contains, regex, must_match -pub fn extract_one_arg_validation(val_name: &str, validator_name: String, field: String, meta_items: &Vec) -> FieldValidation { +pub fn extract_one_arg_validation(val_name: &str, validator_name: String, field: String, meta_items: &Vec) -> FieldValidation { let mut value = None; let (message, code) = extract_message_and_code(&validator_name, &field, meta_items); for meta_item in meta_items { match *meta_item { - syn::NestedMetaItem::MetaItem(ref item) => match *item { - syn::MetaItem::NameValue(ref name, ref val) => { - match name.to_string().as_ref() { + syn::NestedMeta::Meta(ref item) => match *item { + syn::Meta::NameValue(syn::MetaNameValue { ref ident, ref lit, .. }) => { + match ident.as_ref() { "message" | "code" => continue, v if v == val_name => { - value = match lit_to_string(val) { + value = match lit_to_string(lit) { Some(s) => Some(s), None => panic!( "Invalid argument type for `{}` for validator `{}` on field `{}`: only a string is allowed", @@ -206,9 +206,9 @@ pub fn extract_one_arg_validation(val_name: &str, validator_name: String, field: ), }; }, - _ => panic!( + v => panic!( "Unknown argument `{}` for validator `{}` on field `{}`", - name.to_string(), validator_name, field + v, validator_name, field ) } }, @@ -237,15 +237,15 @@ pub fn extract_one_arg_validation(val_name: &str, validator_name: String, field: } } -fn extract_message_and_code(validator_name: &str, field: &str, meta_items: &Vec) -> (Option, Option) { +fn extract_message_and_code(validator_name: &str, field: &str, meta_items: &Vec) -> (Option, Option) { let mut message = None; let mut code = None; for meta_item in meta_items { - if let syn::NestedMetaItem::MetaItem(syn::MetaItem::NameValue(ref name, ref val)) = *meta_item { - match name.to_string().as_ref() { + if let syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue { ref ident , ref lit, .. })) = *meta_item { + match ident.as_ref() { "code" => { - code = match lit_to_string(val) { + code = match lit_to_string(lit) { Some(s) => Some(s), None => panic!( "Invalid argument type for `code` for validator `{}` on field `{}`: only a string is allowed", @@ -254,7 +254,7 @@ fn extract_message_and_code(validator_name: &str, field: &str, meta_items: &Vec< }; }, "message" => { - message = match lit_to_string(val) { + message = match lit_to_string(lit) { Some(s) => Some(s), None => panic!( "Invalid argument type for `message` for validator `{}` on field `{}`: only a string is allowed", -- cgit v1.2.3