pub mod conversions;
pub mod extension;
pub mod interop;
pub mod map;
pub mod message;
pub mod minitable;
pub mod repeated;
pub mod string;
pub use conversions::*;
pub use extension::*;
pub use interop::*;
pub use map::*;
pub use message::*;
pub use minitable::*;
pub use repeated::*;
pub use string::*;
use crate::__internal::entity_tag::*;
use crate::__internal::{EntityType, MatcherEq, Private, SealedInternal};
use crate::{
AsMut, AsView, Clear, ClearAndParse, CopyFrom, IntoProxied, Map, MapIter, MapMut, MapValue,
MapView, MergeFrom, Message, MessageMut, MessageView, Mut, ParseError, ProtoBytes, ProtoStr,
ProtoString, Proxied, Repeated, RepeatedMut, RepeatedView, Serialize, SerializeError, Singular,
TakeFrom, View,
};
use std::fmt::Debug;
use std::marker::PhantomData;
use std::mem::{size_of, ManuallyDrop, MaybeUninit};
use std::ptr::{self, NonNull};
use std::slice;
use std::sync::OnceLock;
#[cfg(bzl)]
extern crate upb;
#[cfg(not(bzl))]
use crate::upb;
pub use upb::Arena;
pub use upb::AssociatedMiniTable;
pub use upb::AssociatedMiniTableEnum;
pub use upb::MessagePtr;
pub type MiniTablePtr = upb::RawMiniTable;
pub type MiniTableEnumPtr = upb::RawMiniTableEnum;
pub type MiniTableExtensionPtr = upb::RawMiniTableExtension;
pub type ExtensionRegistryPtr = upb::RawExtensionRegistry;
use upb::*;
pub fn debug_string<T: UpbGetMessagePtr>(msg: &T) -> String {
let ptr = msg.get_ptr(Private);
unsafe { upb::debug_string(ptr) }
}
pub(crate) type RawRepeatedField = upb::RawArray;
pub(crate) type RawMap = upb::RawMap;
pub(crate) type PtrAndLen = upb::StringView;
#[doc(hidden)]
pub trait MapKey: Proxied + EntityType + UpbTypeConversions<Self::Tag> + SealedInternal {}
thread_local! {
pub static THREAD_LOCAL_ARENA: ManuallyDrop<Arena> = ManuallyDrop::new(Arena::new());
}
pub mod __unstable {
pub struct DescriptorInfo {
pub descriptor: &'static [u8],
pub deps: &'static [&'static DescriptorInfo],
}
}