pub trait Validator {
fn validate_input(&mut self, value: Input<'_>) -> Result<(), Diagnostic> { ... }
fn validate_struct(
&mut self,
value: Derived<'_, ItemStruct, &ItemInput>
) -> Result<(), Diagnostic> { ... }
fn validate_enum(
&mut self,
value: Derived<'_, ItemEnum, &ItemInput>
) -> Result<(), Diagnostic> { ... }
fn validate_variant(
&mut self,
value: Derived<'_, Variant, Derived<'_, ItemEnum, &ItemInput>>
) -> Result<(), Diagnostic> { ... }
fn validate_fields(&mut self, value: Fields<'_>) -> Result<(), Diagnostic> { ... }
fn validate_field(&mut self, value: Field<'_>) -> Result<(), Diagnostic> { ... }
}