diff options
| author | Vincent Prouillet | 2019-10-14 19:53:18 +0200 |
|---|---|---|
| committer | GitHub | 2019-10-14 19:53:18 +0200 |
| commit | 5c509da6e41726e5a80d52c10f70e582b28d145f (patch) | |
| tree | ed2962ef987c124d9f44cb14c2dacdc7aaf97797 /validator_derive/src/quoting.rs | |
| parent | 9554ba1116e2cbdf4ea565616c627792c1d03fa9 (diff) | |
| parent | ac3810f68d2dd86c17a57593959506bd1b99cab5 (diff) | |
| download | validator-5c509da6e41726e5a80d52c10f70e582b28d145f.tar.bz2 | |
Merge pull request #79 from mocsy/master
Add utf-8 non-control characters validator
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)) + } } } |
