diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | validator/Cargo.toml | 1 | ||||
| -rw-r--r-- | validator/src/traits.rs | 2 | ||||
| -rw-r--r-- | validator/src/types.rs | 5 | ||||
| -rw-r--r-- | validator/src/validation/cards.rs | 2 | ||||
| -rw-r--r-- | validator/src/validation/contains.rs | 2 | ||||
| -rw-r--r-- | validator/src/validation/email.rs | 2 | ||||
| -rw-r--r-- | validator/src/validation/ip.rs | 5 | ||||
| -rw-r--r-- | validator/src/validation/length.rs | 4 | ||||
| -rw-r--r-- | validator/src/validation/range.rs | 2 | ||||
| -rw-r--r-- | validator/src/validation/urls.rs | 5 | ||||
| -rw-r--r-- | validator_derive/src/asserts.rs | 10 | ||||
| -rw-r--r-- | validator_derive/src/lib.rs | 4 | ||||
| -rw-r--r-- | validator_derive/src/quoting.rs | 18 | ||||
| -rw-r--r-- | validator_derive/src/validation.rs | 2 | ||||
| -rw-r--r-- | validator_derive/tests/complex.rs | 3 | ||||
| -rw-r--r-- | validator_derive/tests/nested.rs | 21 |
17 files changed, 47 insertions, 42 deletions
@@ -297,6 +297,7 @@ For example, the following attributes all work: #### 0.9.0 (2019/05/xx) - `ValidationErrors::errors` and `ValidationErrors::field_errors` now use `&self` instead of `self` +- Move to edition 2018 #### 0.8.0 (2018/09/19) diff --git a/validator/Cargo.toml b/validator/Cargo.toml index dd184a0..96e8104 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -7,6 +7,7 @@ description = "Common validation functions (email, url, length, ...) and trait - homepage = "https://github.com/Keats/validator" repository = "https://github.com/Keats/validator" keywords = ["validation", "api", "validator"] +edition = "2018" [dependencies] url = "1" diff --git a/validator/src/traits.rs b/validator/src/traits.rs index 8d0b129..cf86919 100644 --- a/validator/src/traits.rs +++ b/validator/src/traits.rs @@ -1,7 +1,7 @@ use std::borrow::Cow; use std::collections::HashMap; -use types::ValidationErrors; +use crate::types::ValidationErrors; /// Trait to implement if one wants to make the `length` validator /// work for more types diff --git a/validator/src/types.rs b/validator/src/types.rs index f759ad7..09e4c7d 100644 --- a/validator/src/types.rs +++ b/validator/src/types.rs @@ -95,7 +95,8 @@ impl ValidationErrors { .filter_map(|(i, entry)| match entry { Some(ValidationErrorsKind::Struct(errors)) => Some((i, errors)), _ => None, - }).collect::<BTreeMap<_, _>>(); + }) + .collect::<BTreeMap<_, _>>(); if errors.is_empty() { parent @@ -129,7 +130,7 @@ impl ValidationErrors { None } }) - .collect::<HashMap<_,_>>() + .collect::<HashMap<_, _>>() } pub fn add(&mut self, field: &'static str, error: ValidationError) { diff --git a/validator/src/validation/cards.rs b/validator/src/validation/cards.rs index 19d91ab..8c97694 100644 --- a/validator/src/validation/cards.rs +++ b/validator/src/validation/cards.rs @@ -1,6 +1,6 @@ use std::borrow::Cow; -use card_validate::Validate as CardValidate; +use crate::card_validate::Validate as CardValidate; pub fn validate_credit_card<'a, T>(card: T) -> bool where diff --git a/validator/src/validation/contains.rs b/validator/src/validation/contains.rs index 8c7b297..ff5d8f2 100644 --- a/validator/src/validation/contains.rs +++ b/validator/src/validation/contains.rs @@ -1,4 +1,4 @@ -use traits::Contains; +use crate::traits::Contains; /// Validates whether the value contains the needle /// The value needs to implement the Contains trait, which is implement on String, str and Hashmap<String> diff --git a/validator/src/validation/email.rs b/validator/src/validation/email.rs index b0b49a3..6ea2fae 100644 --- a/validator/src/validation/email.rs +++ b/validator/src/validation/email.rs @@ -2,7 +2,7 @@ use idna::domain_to_ascii; use regex::Regex; use std::borrow::Cow; -use validation::ip::validate_ip; +use crate::validation::ip::validate_ip; lazy_static! { // Regex from the specs diff --git a/validator/src/validation/ip.rs b/validator/src/validation/ip.rs index dea4260..2026cdc 100644 --- a/validator/src/validation/ip.rs +++ b/validator/src/validation/ip.rs @@ -35,10 +35,7 @@ pub fn validate_ip<'a, T>(val: T) -> bool where T: Into<Cow<'a, str>>, { - match IpAddr::from_str(val.into().as_ref()) { - Ok(_) => true, - Err(_) => false, - } + IpAddr::from_str(val.into().as_ref()).is_ok() } #[cfg(test)] diff --git a/validator/src/validation/length.rs b/validator/src/validation/length.rs index 8e6a5a4..58e76ff 100644 --- a/validator/src/validation/length.rs +++ b/validator/src/validation/length.rs @@ -1,5 +1,5 @@ -use traits::HasLen; -use validation::Validator; +use crate::traits::HasLen; +use crate::validation::Validator; /// Validates the length of the value given. /// If the validator has `equal` set, it will ignore any `min` and `max` value. diff --git a/validator/src/validation/range.rs b/validator/src/validation/range.rs index a89f707..a5664fa 100644 --- a/validator/src/validation/range.rs +++ b/validator/src/validation/range.rs @@ -1,4 +1,4 @@ -use validation::Validator; +use crate::validation::Validator; /// Validates that a number is in the given range /// diff --git a/validator/src/validation/urls.rs b/validator/src/validation/urls.rs index 56c3390..1c46c6f 100644 --- a/validator/src/validation/urls.rs +++ b/validator/src/validation/urls.rs @@ -6,10 +6,7 @@ pub fn validate_url<'a, T>(val: T) -> bool where T: Into<Cow<'a, str>>, { - match Url::parse(val.into().as_ref()) { - Ok(_) => true, - Err(_) => false, - } + Url::parse(val.into().as_ref()).is_ok() } #[cfg(test)] diff --git a/validator_derive/src/asserts.rs b/validator_derive/src/asserts.rs index 1a8dfff..a5892a8 100644 --- a/validator_derive/src/asserts.rs +++ b/validator_derive/src/asserts.rs @@ -43,7 +43,7 @@ pub static NUMBER_TYPES: [&'static str; 36] = [ "Option<Option<f64>>", ]; -pub fn assert_string_type(name: &str, field_type: &String) { +pub fn assert_string_type(name: &str, field_type: &str) { if field_type != "String" && field_type != "&str" && !COW_TYPE.is_match(field_type) @@ -59,7 +59,7 @@ pub fn assert_string_type(name: &str, field_type: &String) { } } -pub fn assert_type_matches(field_name: String, field_type: &String, field_type2: Option<&String>) { +pub fn assert_type_matches(field_name: String, field_type: &str, field_type2: Option<&String>) { if let Some(t2) = field_type2 { if field_type != t2 { panic!("Invalid argument for `must_match` validator of field `{}`: types of field can't match", field_name); @@ -69,7 +69,7 @@ pub fn assert_type_matches(field_name: String, field_type: &String, field_type2: } } -pub fn assert_has_len(field_name: String, field_type: &String) { +pub fn assert_has_len(field_name: String, field_type: &str) { if field_type != "String" && !field_type.starts_with("Vec<") && !field_type.starts_with("Option<Vec<") @@ -89,8 +89,8 @@ pub fn assert_has_len(field_name: String, field_type: &String) { } } -pub fn assert_has_range(field_name: String, field_type: &String) { - if !NUMBER_TYPES.contains(&field_type.as_ref()) { +pub fn assert_has_range(field_name: String, field_type: &str) { + if !NUMBER_TYPES.contains(&field_type) { panic!( "Validator `range` can only be used on number types but found `{}` for field `{}`", field_type, field_name diff --git a/validator_derive/src/lib.rs b/validator_derive/src/lib.rs index 0647a7d..f3796b4 100644 --- a/validator_derive/src/lib.rs +++ b/validator_derive/src/lib.rs @@ -420,8 +420,8 @@ fn find_original_field_name(meta_items: &Vec<&syn::NestedMeta>) -> Option<String let mut original_name = None; for meta_item in meta_items { - match *meta_item { - &syn::NestedMeta::Meta(ref item) => match *item { + match **meta_item { + syn::NestedMeta::Meta(ref item) => match *item { syn::Meta::Word(_) => continue, syn::Meta::NameValue(syn::MetaNameValue { ref ident, ref lit, .. }) => { if ident == "rename" { diff --git a/validator_derive/src/quoting.rs b/validator_derive/src/quoting.rs index fa97623..b94962c 100644 --- a/validator_derive/src/quoting.rs +++ b/validator_derive/src/quoting.rs @@ -32,7 +32,7 @@ impl FieldQuoter { quote!(#ident) } else if COW_TYPE.is_match(&self._type.as_ref()) { quote!(self.#ident.as_ref()) - } else if self._type.starts_with("&") || NUMBER_TYPES.contains(&self._type.as_ref()) { + } else if self._type.starts_with('&') || NUMBER_TYPES.contains(&self._type.as_ref()) { quote!(self.#ident) } else { quote!(&self.#ident) @@ -92,14 +92,14 @@ impl FieldQuoter { let field_name = &self.name; if self._type.starts_with("Vec<") { return quote!( - if !::validator::ValidationErrors::has_error(&result, #field_name) { - let results: Vec<_> = self.#field_ident.iter().map(|#field_ident| { - let mut result = ::std::result::Result::Ok(()); - #tokens - result - }).collect(); - result = ::validator::ValidationErrors::merge_all(result, #field_name, results); - }); + if !::validator::ValidationErrors::has_error(&result, #field_name) { + let results: Vec<_> = self.#field_ident.iter().map(|#field_ident| { + let mut result = ::std::result::Result::Ok(()); + #tokens + result + }).collect(); + result = ::validator::ValidationErrors::merge_all(result, #field_name, results); + }); } tokens diff --git a/validator_derive/src/validation.rs b/validator_derive/src/validation.rs index d9ad5a5..5f42d7b 100644 --- a/validator_derive/src/validation.rs +++ b/validator_derive/src/validation.rs @@ -134,7 +134,7 @@ pub fn extract_range_validation( } } - if !min.is_some() && !max.is_some() { + if min.is_none() && max.is_none() { error("Validator `range` requires at least 1 argument out of `min` and `max`"); } diff --git a/validator_derive/tests/complex.rs b/validator_derive/tests/complex.rs index 974fdad..305b0ce 100644 --- a/validator_derive/tests/complex.rs +++ b/validator_derive/tests/complex.rs @@ -99,7 +99,8 @@ fn failed_validation_points_to_original_field_name() { // println!("{}", serde_json::to_string(&res).unwrap()); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert!(errs.contains_key("firstName")); + let errs = err.errors(); + assert!(errs.contains_key("firstName")); if let ValidationErrorsKind::Field(ref err) = errs["firstName"] { assert_eq!(err.len(), 1); assert_eq!(err[0].code, "length"); diff --git a/validator_derive/tests/nested.rs b/validator_derive/tests/nested.rs index 9e3e57f..781f01d 100644 --- a/validator_derive/tests/nested.rs +++ b/validator_derive/tests/nested.rs @@ -72,7 +72,8 @@ fn failed_validation_points_to_original_field_names() { let res = root.validate(); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert_eq!(errs.len(), 2); + let errs = err.errors(); + assert_eq!(errs.len(), 2); assert!(errs.contains_key("value")); if let ValidationErrorsKind::Field(ref errs) = errs["value"] { assert_eq!(errs.len(), 1); @@ -119,7 +120,8 @@ fn test_can_validate_option_fields_without_lifetime() { let res = instance.validate(); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert_eq!(errs.len(), 1); + let errs = err.errors(); + assert_eq!(errs.len(), 1); assert!(errs.contains_key("child")); if let ValidationErrorsKind::Struct(ref errs) = errs["child"] { unwrap_map(errs, |errs| { @@ -152,7 +154,8 @@ fn test_can_validate_option_fields_with_lifetime() { let res = instance.validate(); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert_eq!(errs.len(), 1); + let errs = err.errors(); + assert_eq!(errs.len(), 1); assert!(errs.contains_key("child")); if let ValidationErrorsKind::Struct(ref errs) = errs["child"] { unwrap_map(errs, |errs| { @@ -192,7 +195,8 @@ fn test_can_validate_vector_fields() { let res = instance.validate(); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert_eq!(errs.len(), 1); + let errs = err.errors(); + assert_eq!(errs.len(), 1); assert!(errs.contains_key("child")); if let ValidationErrorsKind::List(ref errs) = errs["child"] { assert!(errs.contains_key(&1)); @@ -229,7 +233,8 @@ fn test_field_validations_take_priority_over_nested_validations() { let res = instance.validate(); assert!(res.is_err()); let err = res.unwrap_err(); -let errs = err.errors();assert_eq!(errs.len(), 1); + let errs = err.errors(); + assert_eq!(errs.len(), 1); assert!(errs.contains_key("child")); if let ValidationErrorsKind::Field(ref errs) = errs["child"] { assert_eq!(errs.len(), 1); @@ -275,7 +280,8 @@ fn test_field_validation_errors_replaced_with_nested_validations_fails() { let mut result = Ok(()); result = ValidationErrors::merge(result, "child", child.validate()); result - }).collect(); + }) + .collect(); result = ValidationErrors::merge_all(result, "child", results); } result @@ -313,7 +319,8 @@ fn test_field_validations_evaluated_after_nested_validations_fails() { let mut result = Ok(()); result = ValidationErrors::merge(result, "child", child.validate()); result - }).collect(); + }) + .collect(); result = ValidationErrors::merge_all(result, "child", results); } |
