pub mod envelope;
pub mod native_transport;
pub mod prepared;
pub mod request;
pub mod services;
pub mod session;
pub mod native {
tonic::include_proto!("mongreldb.v1");
}
pub const NATIVE_API_MAJOR: u32 = 1;
pub const NATIVE_API_MINOR: u32 = 1;
pub fn validate_native_context(
context: Option<&native::RequestContext>,
) -> Result<(), tonic::Status> {
let version = context
.and_then(|context| context.version.as_ref())
.ok_or_else(|| tonic::Status::invalid_argument("native API version is required"))?;
if version.major != NATIVE_API_MAJOR {
return Err(tonic::Status::failed_precondition(format!(
"unsupported native API major {}; supported major is {}",
version.major, NATIVE_API_MAJOR
)));
}
Ok(())
}
#[cfg(test)]
pub(crate) mod test_support;