diff options
Diffstat (limited to 'validator_derive/src/quoting.rs')
| -rw-r--r-- | validator_derive/src/quoting.rs | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/validator_derive/src/quoting.rs b/validator_derive/src/quoting.rs index b94962c..6bfef0c 100644 --- a/validator_derive/src/quoting.rs +++ b/validator_derive/src/quoting.rs @@ -258,6 +258,26 @@ pub fn quote_phone_validation(      field_quoter.wrap_if_option(quoted)  } +#[cfg(feature = "unic")] +pub fn quote_non_control_character_validation( +    field_quoter: &FieldQuoter, +    validation: &FieldValidation, +) -> proc_macro2::TokenStream { +    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_non_control_character(#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, @@ -440,6 +460,10 @@ pub fn quote_field_validation(          #[cfg(feature = "phone")]          Validator::Phone => validations.push(quote_phone_validation(&field_quoter, validation)),          Validator::Nested => nested_validations.push(quote_nested_validation(&field_quoter)), +        #[cfg(feature = "unic")] +        Validator::NonControlCharacter => { +            validations.push(quote_non_control_character_validation(&field_quoter, validation)) +        }      }  } | 
