mod error;
pub mod cel;
pub mod rules;
#[cfg(feature = "connect")]
mod connect;
pub use error::{FieldPath, FieldPathElement, FieldType, Subscript, ValidationError, Violation};
pub use cel_interpreter;
pub use regex;
pub use protovalidate_buffa_macros::auto_validate;
pub trait Validate {
fn validate(&self) -> Result<(), ValidationError>;
}
#[macro_export]
macro_rules! field_path {
( $( $part:expr ),* $(,)? ) => {{
let mut elements = ::std::vec::Vec::new();
$(
elements.push($crate::FieldPathElement {
field_number: None,
field_name: Some(::std::borrow::Cow::Borrowed($part)),
field_type: None,
subscript: None,
});
)*
$crate::FieldPath { elements }
}};
}