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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#![allow(non_camel_case_types)]
use super::util;
#[derive(Debug, garde::Validate)]
#[garde(transparent)]
struct NonEmptyStr_Struct<'a> {
#[garde(length(min = 1))]
v: &'a str,
}
#[test]
fn newtype_struct_valid() {
util::check_ok(&[NonEmptyStr_Struct { v: "test" }], &());
}
#[test]
fn newtype_struct_invalid() {
util::check_fail!(&[NonEmptyStr_Struct { v: "" }], &());
}
#[derive(Debug, garde::Validate)]
#[garde(transparent)]
struct NonEmptyStr_Tuple<'a>(#[garde(length(min = 1))] &'a str);
#[test]
fn newtype_tuple_valid() {
util::check_ok(&[NonEmptyStr_Tuple("test")], &());
}
#[test]
fn newtype_tuple_invalid() {
util::check_fail!(&[NonEmptyStr_Tuple("")], &());
}
#[derive(Debug, garde::Validate)]
struct Test<'a> {
#[garde(dive)]
a: NonEmptyStr_Struct<'a>,
#[garde(dive)]
b: NonEmptyStr_Tuple<'a>,
}
#[test]
fn newtype_fields_valid() {
util::check_ok(
&[Test {
a: NonEmptyStr_Struct { v: "test" },
b: NonEmptyStr_Tuple("test"),
}],
&(),
);
}
#[test]
fn newtype_fields_invalid() {
util::check_fail!(
&[Test {
a: NonEmptyStr_Struct { v: "" },
b: NonEmptyStr_Tuple(""),
}],
&()
);
}
|