diff options
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),      }  } | 
