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/quoting.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/quoting.rs')
| -rw-r--r-- | validator_derive/src/quoting.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/validator_derive/src/quoting.rs b/validator_derive/src/quoting.rs index 69353e9..24c50d8 100644 --- a/validator_derive/src/quoting.rs +++ b/validator_derive/src/quoting.rs @@ -158,6 +158,22 @@ pub fn quote_range_validation(field_quoter: &FieldQuoter, validation: &FieldVali unreachable!() } +pub fn quote_phone_validation(field_quoter: &FieldQuoter, validation: &FieldValidation) -> quote::Tokens { + let field_name = &field_quoter.name; + let validator_param = field_quoter.quote_validator_param(); + + let quoted_error = quote_error(&validation); + let quoted = quote!( + if !::validator::validate_phone(#validator_param) { + #quoted_error + err.add_param(::std::borrow::Cow::from("value"), &#validator_param); + errors.add(#field_name, err); + } + ); + + field_quoter.wrap_if_option(quoted) +} + pub fn quote_url_validation(field_quoter: &FieldQuoter, validation: &FieldValidation) -> quote::Tokens { let field_name = &field_quoter.name; let validator_param = field_quoter.quote_validator_param(); @@ -293,6 +309,7 @@ pub fn quote_field_validation(field_quoter: &FieldQuoter, validation: &FieldVali Validator::Custom(_) => quote_custom_validation(&field_quoter, validation), Validator::Contains(_) => quote_contains_validation(&field_quoter, validation), Validator::Regex(_) => quote_regex_validation(&field_quoter, validation), + Validator::Phone => quote_phone_validation(&field_quoter, validation), } } |
