pub use paste::paste;
use crate::map;
pub use crate::r#enum::Enum;
use crate::repeated;
pub use crate::ProtoStr;
use crate::Proxied;
pub use std::fmt::Debug;
#[cfg(all(bzl, cpp_kernel))]
#[path = "cpp.rs"]
pub mod runtime;
#[cfg(any(not(bzl), upb_kernel))]
#[path = "upb.rs"]
pub mod runtime;
pub use runtime::{PtrAndLen, RawMap, RawMessage, RawRepeatedField};
#[derive(Debug)]
pub struct Private;
pub trait SealedInternal: Sized {}
pub trait MatcherEq: SealedInternal + Debug {
fn matches(&self, o: &Self) -> bool;
}
pub fn get_repeated_default_value<T: repeated::ProxiedInRepeated + Default>(
_: Private,
_: repeated::RepeatedView<'_, T>,
) -> T {
Default::default()
}
pub fn get_map_default_value<K: Proxied, V: map::ProxiedInMapValue<K> + Default>(
_: Private,
_: map::MapView<'_, K, V>,
) -> V {
Default::default()
}
#[cfg(not(bzl))]
pub const fn assert_compatible_gencode_version(gencode_version: &'static str) {
const fn const_str_eq(lhs: &str, rhs: &str) -> bool {
let lhs = lhs.as_bytes();
let rhs = rhs.as_bytes();
if lhs.len() != rhs.len() {
return false;
}
let mut i = 0;
while i < lhs.len() {
if lhs[i] != rhs[i] {
return false;
}
i += 1;
}
true
}
let runtime_version = env!("CARGO_PKG_VERSION");
assert!(
const_str_eq(gencode_version, runtime_version),
"Gencode version is not compatible with runtime version",
)
}
#[cfg(bzl)]
pub const fn assert_compatible_gencode_version(_gencode_version: &'static str) {}