mod sys {
pub use super::super::super::*;
}
use sys::mem::arena::RawArena;
use sys::message::message::RawMessage;
use sys::mini_table::extension_registry::upb_ExtensionRegistry;
use sys::mini_table::mini_table::RawMiniTable;
#[repr(C)]
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
pub enum EncodeStatus {
Ok = 0,
OutOfMemory = 1,
MaxDepthExceeded = 2,
MissingRequired = 3,
MaxSizeExceeded = 4,
}
#[repr(C)]
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
pub enum DecodeStatus {
Ok = 0,
OutOfMemory = 1,
Malformed = 2,
BadUtf8 = 3,
MaxDepthExceeded = 4,
MissingRequired = 5,
}
unsafe extern "C" {
pub fn upb_Encode(
msg: RawMessage,
mini_table: RawMiniTable,
options: i32,
arena: RawArena,
buf: *mut *mut u8,
buf_size: *mut usize,
) -> EncodeStatus;
pub fn upb_Decode(
buf: *const u8,
buf_size: usize,
msg: RawMessage,
mini_table: RawMiniTable,
extreg: *const upb_ExtensionRegistry,
options: i32,
arena: RawArena,
) -> DecodeStatus;
}
#[cfg(test)]
mod tests {
use super::*;
use googletest::gtest;
#[gtest]
fn assert_wire_linked() {
use crate::assert_linked;
assert_linked!(upb_Encode);
assert_linked!(upb_Decode);
}
}