diff options
| author | Valerian Saliou | 2017-10-09 18:36:03 -0700 |
|---|---|---|
| committer | Valerian Saliou | 2017-11-07 07:59:58 -0500 |
| commit | 304ff212e20cd10e2f4bc99a54385db461a3a27d (patch) | |
| tree | 430f08a7fe7da65d8f152171512e1b9724cf7f07 /validator_derive/src/lib.rs | |
| parent | 4d7138e040cd5faaf84448a75b64f3ff0e4673e5 (diff) | |
| download | validator-304ff212e20cd10e2f4bc99a54385db461a3a27d.tar.bz2 | |
Ability to validate an international phone number
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Derives for the ‘phone’ validator (still unsure about it)
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Fix review
Merge + Add missing documented ‘credit_cards’ feature
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Fix
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Fix
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Merge
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
‘credit_cards’ feature is no longer needed as per #33
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
Diffstat (limited to 'validator_derive/src/lib.rs')
| -rw-r--r-- | validator_derive/src/lib.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/validator_derive/src/lib.rs b/validator_derive/src/lib.rs index 1298006..9cfc381 100644 --- a/validator_derive/src/lib.rs +++ b/validator_derive/src/lib.rs @@ -256,7 +256,7 @@ fn find_validators_for_field(field: &syn::Field, field_types: &HashMap<String, S for meta_item in meta_items { match *meta_item { syn::NestedMetaItem::MetaItem(ref item) => match *item { - // email, url + // email, url, phone syn::MetaItem::Word(ref name) => match name.to_string().as_ref() { "email" => { assert_string_type("email", field_type); @@ -266,6 +266,10 @@ fn find_validators_for_field(field: &syn::Field, field_types: &HashMap<String, S assert_string_type("url", field_type); validators.push(FieldValidation::new(Validator::Url)); }, + "phone" => { + assert_string_type("phone", field_type); + validators.push(FieldValidation::new(Validator::Phone)); + }, _ => panic!("Unexpected validator: {}", name) }, // custom, contains, must_match, regex @@ -311,7 +315,7 @@ fn find_validators_for_field(field: &syn::Field, field_types: &HashMap<String, S assert_has_range(rust_ident.clone(), field_type); validators.push(extract_range_validation(rust_ident.clone(), meta_items)); }, - "email" | "url" => { + "email" | "url" | "phone" => { validators.push(extract_argless_validation(name.to_string(), rust_ident.clone(), meta_items)); }, "custom" => { |
