diff options
| author | Erin | 2018-05-15 20:50:18 -0500 |
|---|---|---|
| committer | Erin | 2018-05-15 20:50:18 -0500 |
| commit | 91592718aa3d6ae102ae31ee08bd3ae7bd57adec (patch) | |
| tree | 224f28e955f1ece791742d5b3858a54ef9a03a11 | |
| parent | 4658e5303d3dc5aa3579119b0d0724cab3e98308 (diff) | |
| download | validator-91592718aa3d6ae102ae31ee08bd3ae7bd57adec.tar.bz2 | |
feature gate card validator
| -rw-r--r-- | validator/Cargo.toml | 3 | ||||
| -rw-r--r-- | validator/src/lib.rs | 2 | ||||
| -rw-r--r-- | validator/src/validation/mod.rs | 1 | ||||
| -rw-r--r-- | validator_derive/Cargo.toml | 1 | ||||
| -rw-r--r-- | validator_derive/src/lib.rs | 1 | ||||
| -rw-r--r-- | validator_derive/src/quoting.rs | 1 | ||||
| -rw-r--r-- | validator_derive/src/validation.rs | 1 |
7 files changed, 9 insertions, 1 deletions
diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 079fefb..1d57814 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -16,8 +16,9 @@ idna = "0.1" serde = "1" serde_derive = "1" serde_json = "1" -card-validate = "2.1" +card-validate = { version = "2.1", optional = true } phonenumber = { version = "0.2.0+8.7.0", optional = true } [features] phone = ["phonenumber"] +card = ["card-validate"]
\ No newline at end of file diff --git a/validator/src/lib.rs b/validator/src/lib.rs index 2cea387..b020026 100644 --- a/validator/src/lib.rs +++ b/validator/src/lib.rs @@ -7,6 +7,7 @@ extern crate serde; extern crate serde_json; #[macro_use] extern crate serde_derive; +#[cfg(feature = "card")] extern crate card_validate; #[cfg(feature = "phone")] pub extern crate phonenumber; @@ -22,6 +23,7 @@ pub use validation::range::{validate_range}; pub use validation::urls::{validate_url}; pub use validation::must_match::{validate_must_match}; pub use validation::contains::{validate_contains}; +#[cfg(feature = "card")] pub use validation::cards::{validate_credit_card}; #[cfg(feature = "phone")] pub use validation::phone::{validate_phone}; diff --git a/validator/src/validation/mod.rs b/validator/src/validation/mod.rs index 93a9ec3..b244108 100644 --- a/validator/src/validation/mod.rs +++ b/validator/src/validation/mod.rs @@ -5,6 +5,7 @@ pub mod range; pub mod urls; pub mod must_match; pub mod contains; +#[cfg(feature = "card")] pub mod cards; #[cfg(feature = "phone")] pub mod phone; diff --git a/validator_derive/Cargo.toml b/validator_derive/Cargo.toml index b52c8b5..ee0d468 100644 --- a/validator_derive/Cargo.toml +++ b/validator_derive/Cargo.toml @@ -13,6 +13,7 @@ proc-macro = true [features] phone = ["validator/phone"] +card = ["validator/card"] [dependencies] syn = { version = "0.13", features = ["extra-traits"] } diff --git a/validator_derive/src/lib.rs b/validator_derive/src/lib.rs index 4aa37d0..ed7669f 100644 --- a/validator_derive/src/lib.rs +++ b/validator_derive/src/lib.rs @@ -272,6 +272,7 @@ fn find_validators_for_field(field: &syn::Field, field_types: &HashMap<String, S assert_string_type("phone", field_type); validators.push(FieldValidation::new(Validator::Phone)); }, + #[cfg(feature = "card")] "credit_card" => { assert_string_type("credit_card", field_type); validators.push(FieldValidation::new(Validator::CreditCard)); diff --git a/validator_derive/src/quoting.rs b/validator_derive/src/quoting.rs index a3e25cb..6e010d7 100644 --- a/validator_derive/src/quoting.rs +++ b/validator_derive/src/quoting.rs @@ -165,6 +165,7 @@ pub fn quote_range_validation(field_quoter: &FieldQuoter, validation: &FieldVali unreachable!() } +#[cfg(feature = "card")] pub fn quote_credit_card_validation(field_quoter: &FieldQuoter, validation: &FieldValidation) -> quote::Tokens { let field_name = &field_quoter.name; let validator_param = field_quoter.quote_validator_param(); diff --git a/validator_derive/src/validation.rs b/validator_derive/src/validation.rs index b5c7b78..bd59428 100644 --- a/validator_derive/src/validation.rs +++ b/validator_derive/src/validation.rs @@ -173,6 +173,7 @@ pub fn extract_argless_validation(validator_name: String, field: String, meta_it let validator = match validator_name.as_ref() { "email" => Validator::Email, + #[cfg(feature = "card")] "credit_card" => Validator::CreditCard, #[cfg(feature = "phone")] "phone" => Validator::Phone, |
