#![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(""), }], &() ); }