#![deny(missing_docs)]
pub use swift_bridge_macro::bridge;
mod std_bridge;
pub use self::std_bridge::{option, result, string};
#[doc(hidden)]
#[cfg(feature = "async")]
pub mod async_support;
#[doc(hidden)]
#[cfg(feature = "async")]
pub mod async_swift_support;
#[doc(hidden)]
pub mod boxed_fn_support;
#[doc(hidden)]
pub mod copy_support;
#[doc(hidden)]
#[repr(C)]
pub struct FfiSlice<T> {
pub start: *const T,
pub len: usize,
}
#[doc(hidden)]
#[repr(C)]
pub struct PointerToSwiftType(pub *mut std::ffi::c_void);
impl<T> FfiSlice<T> {
pub fn from_slice(slice: &[T]) -> Self {
FfiSlice {
start: slice.as_ptr(),
len: slice.len(),
}
}
pub fn as_slice(&self) -> &'static [T] {
unsafe { std::slice::from_raw_parts(self.start, self.len) }
}
}
#[doc(hidden)]
pub trait SharedStruct {
type FfiRepr;
}
#[doc(hidden)]
pub trait SharedEnum {
type FfiRepr;
}
#[no_mangle]
#[doc(hidden)]
pub extern "C" fn __swift_bridge__null_pointer() -> *const std::ffi::c_void {
std::ptr::null()
}