diff --git a/packages/fortifier-macros/src/validate/type.rs b/packages/fortifier-macros/src/validate/type.rs index b95de34..030dccb 100644 --- a/packages/fortifier-macros/src/validate/type.rs +++ b/packages/fortifier-macros/src/validate/type.rs @@ -157,6 +157,77 @@ const KEYED_CONTAINER_TYPES: [&str; 6] = [ "std::collections::HashMap", ]; +/// Ecosystem types. +/// +/// De facto standard types. +const ECOSYSTEM_TYPES: [&str; 65] = [ + "Date", + "DateTime", + "Days", + "Decimal", + "Duration", + "FixedI8", + "FixedI16", + "FixedI32", + "FixedI64", + "FixedI128", + "FixedU8", + "FixedU16", + "FixedU32", + "FixedU64", + "FixedU128", + "Month", + "Months", + "NaiveDate", + "NaiveDateTime", + "NaiveTime", + "OffsetDateTime", + "OrderedFloat", + "PrimitiveDateTime", + "Regex", + "Time", + "TimeDelta", + "UtcDateTime", + "Uuid", + "Weekday", + "WeekdaySet", + "chrono::Date", + "chrono::DateTime", + "chrono::Days", + "chrono::Duration", + "chrono::Month", + "chrono::Months", + "chrono::NaiveDate", + "chrono::NaiveDateTime", + "chrono::NaiveTime", + "chrono::TimeDelta", + "chrono::Weekday", + "chrono::WeekdaySet", + "fancy_regex::Regex", + "fixed::FixedI8", + "fixed::FixedI16", + "fixed::FixedI32", + "fixed::FixedI64", + "fixed::FixedI128", + "fixed::FixedU8", + "fixed::FixedU16", + "fixed::FixedU32", + "fixed::FixedU64", + "fixed::FixedU128", + "ordered_float::OrderedFloat", + "regex::Regex", + "rust_decimal::Decimal", + "time::Date", + "time::Duration", + "time::Month", + "time::OffsetDateTime", + "time::PrimitiveDateTime", + "time::Time", + "time::UtcDateTime", + "time::Weekday", + "uuid::Uuid", +]; + fn path_to_string(path: &Path) -> String { path.segments .iter() @@ -227,10 +298,6 @@ fn should_validate_path(generics: &Generics, path: &Path) -> Option Option::from_iter( path.segments .iter() diff --git a/packages/fortifier/src/lib.rs b/packages/fortifier/src/lib.rs index 197eceb..303f7a4 100644 --- a/packages/fortifier/src/lib.rs +++ b/packages/fortifier/src/lib.rs @@ -5,7 +5,6 @@ mod error; mod error_code; mod integrations; -mod types; mod validate; mod validations; diff --git a/packages/fortifier/src/types.rs b/packages/fortifier/src/types.rs deleted file mode 100644 index 7312c73..0000000 --- a/packages/fortifier/src/types.rs +++ /dev/null @@ -1,6 +0,0 @@ -#[cfg(feature = "chrono")] -mod chrono; -#[cfg(feature = "decimal")] -mod decimal; -#[cfg(feature = "uuid")] -mod uuid; diff --git a/packages/fortifier/src/types/chrono.rs b/packages/fortifier/src/types/chrono.rs deleted file mode 100644 index f94f56c..0000000 --- a/packages/fortifier/src/types/chrono.rs +++ /dev/null @@ -1,40 +0,0 @@ -//! Infallible validation implementations for [`chrono`] types. -//! -//! This prevents having to specify `#[validate(skip)]` for these types. - -use std::convert::Infallible; - -use chrono::{DateTime, NaiveDate, NaiveDateTime, NaiveTime, TimeDelta, TimeZone}; - -use crate::{ - error::ValidationErrors, - validate::{Validate, ValidateWithContext}, - validate_ok, -}; - -validate_ok!(NaiveDate); -validate_ok!(NaiveDateTime); -validate_ok!(NaiveTime); -validate_ok!(TimeDelta); - -impl ValidateWithContext for DateTime { - type Context = (); - type Error = Infallible; - - fn validate_sync_with_context( - &self, - _context: &Self::Context, - ) -> Result<(), ValidationErrors> { - Ok(()) - } - - fn validate_async_with_context( - &self, - _context: &Self::Context, - ) -> ::std::pin::Pin>> + Send>> - { - Box::pin(async { Ok(()) }) - } -} - -impl Validate for DateTime {} diff --git a/packages/fortifier/src/types/decimal.rs b/packages/fortifier/src/types/decimal.rs deleted file mode 100644 index b49cfc2..0000000 --- a/packages/fortifier/src/types/decimal.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! Infallible validation implementations for [`rust_decimal`] types. -//! -//! This prevents having to specify `#[validate(skip)]` for these types. - -use rust_decimal::Decimal; - -use crate::validate_ok; - -validate_ok!(Decimal); diff --git a/packages/fortifier/src/types/uuid.rs b/packages/fortifier/src/types/uuid.rs deleted file mode 100644 index ef9c58a..0000000 --- a/packages/fortifier/src/types/uuid.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! Infallible validation implementations for [`uuid`] types. -//! -//! This prevents having to specify `#[validate(skip)]` for these types. - -use uuid::Uuid; - -use crate::validate_ok; - -validate_ok!(Uuid);