1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#[cfg(feature = "diesel")]
#[macro_use]
extern crate diesel;

mod buf;
mod impl_convert;
mod slice;
pub use buf::StrongBuf;
pub use slice::Strong;

/// Has marker traits for [`Validator`].
pub mod marker;

/// Requires `some_validators` feature.
#[cfg(feature = "some_validators")]
pub mod validators;

/// Requires `diesel` feature.
#[cfg(feature = "diesel")]
pub mod impl_diesel;
#[cfg(feature = "juniper")]
mod impl_juniper;
#[cfg(feature = "serde")]
mod impl_serde;

/// For [`Strong`]
pub trait Validator {
    type Err;
    #[allow(unused_variables)]
    #[inline]
    fn validate(raw: &str) -> Result<(), Self::Err> { Ok(()) }
}

#[cfg(feature = "shorthand")]
pub use Strong as S;
#[cfg(feature = "shorthand")]
pub use StrongBuf as Str;