From 13cc54da9dbb3d5232ec7c66b719a345adaac82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Mal=C3=A9cot?= Date: Wed, 29 Jan 2025 14:42:46 +0100 Subject: [PATCH] refactor: remove dependency on unic-ucd-common by using std::char::is_control --- .github/workflows/ci.yml | 4 ++-- README.md | 1 - validator/Cargo.toml | 2 -- validator/src/lib.rs | 3 +-- validator/src/validation/mod.rs | 1 - validator/src/validation/non_control_character.rs | 6 +----- validator_derive_tests/Cargo.toml | 1 - 7 files changed, 4 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ac3abb4..aa70a013 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,8 @@ jobs: run: | cargo build --no-default-features cargo test --no-default-features - cargo build --features unic --features derive --features card - cargo test --features unic --features derive --features card + cargo build --features derive --features card + cargo test --features derive --features card test_validator-nightly: name: Continuous integration runs-on: ubuntu-latest diff --git a/README.md b/README.md index 9997c433..42f7383e 100644 --- a/README.md +++ b/README.md @@ -335,7 +335,6 @@ Examples: ### non_control_character Tests whether the String has any utf-8 control characters, fails validation if it does. -To use this validator, you must enable the `unic` feature for the `validator` crate. This validator doesn't take any arguments: `#[validate(non_control_character)]`; ### required diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 9babac1c..152655d7 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -21,11 +21,9 @@ serde_derive = "1" serde_json = "1" validator_derive = { version = "0.20", path = "../validator_derive", optional = true } card-validate = { version = "2.3", optional = true } -unic-ucd-common = { version = "0.9", optional = true } indexmap = { version = "2.0.0", features = ["serde"], optional = true } [features] card = ["card-validate"] -unic = ["unic-ucd-common"] derive = ["validator_derive"] derive_nightly_features = ["derive","validator_derive/nightly_features"] \ No newline at end of file diff --git a/validator/src/lib.rs b/validator/src/lib.rs index d456e1df..2cb6d108 100644 --- a/validator/src/lib.rs +++ b/validator/src/lib.rs @@ -47,7 +47,7 @@ //! | `custom` | | //! | `regex` | | //! | `credit_card` | (Requires the feature `card` to be enabled) | -//! | `non_control_character` | (Required the feature `unic` to be enabled) | +//! | `non_control_character` | | //! | `required` | | //! //! [Checkout the project README of an in-depth usage description with examples.](https://github.com/Keats/validator/blob/master/README.md) @@ -73,7 +73,6 @@ pub use validation::email::ValidateEmail; pub use validation::ip::ValidateIp; pub use validation::length::ValidateLength; pub use validation::must_match::validate_must_match; -#[cfg(feature = "unic")] pub use validation::non_control_character::ValidateNonControlCharacter; pub use validation::range::ValidateRange; pub use validation::regex::{AsRegex, ValidateRegex}; diff --git a/validator/src/validation/mod.rs b/validator/src/validation/mod.rs index 22793300..44831d32 100644 --- a/validator/src/validation/mod.rs +++ b/validator/src/validation/mod.rs @@ -7,7 +7,6 @@ pub mod ip; pub mod length; pub mod must_match; // pub mod nested; -#[cfg(feature = "unic")] pub mod non_control_character; pub mod range; pub mod regex; diff --git a/validator/src/validation/non_control_character.rs b/validator/src/validation/non_control_character.rs index b12a2812..7e991270 100644 --- a/validator/src/validation/non_control_character.rs +++ b/validator/src/validation/non_control_character.rs @@ -1,9 +1,6 @@ -#[cfg(feature = "unic")] -use unic_ucd_common::control; - pub trait ValidateNonControlCharacter { fn validate_non_control_character(&self) -> bool { - self.as_non_control_character_iterator().all(|code| !control::is_control(code)) + self.as_non_control_character_iterator().all(|code| !code.is_control()) } fn as_non_control_character_iterator(&self) -> Box + '_>; @@ -16,7 +13,6 @@ impl> ValidateNonControlCharacter for T { } #[cfg(test)] -#[cfg(feature = "unic")] mod tests { use super::ValidateNonControlCharacter; use std::borrow::Cow; diff --git a/validator_derive_tests/Cargo.toml b/validator_derive_tests/Cargo.toml index 858d8090..ced9fdc4 100644 --- a/validator_derive_tests/Cargo.toml +++ b/validator_derive_tests/Cargo.toml @@ -13,7 +13,6 @@ nightly = [] [dev-dependencies] validator = { version = "0.20", path = "../validator", features = [ "card", - "unic", "derive", "indexmap", ] }