macro_rules! impl_ccall_arg {
($ty:ident) => {
unsafe impl $crate::convert::ccall_types::CCallArg for $ty {
type CCallArgType = Self;
type FunctionArgType = Self;
}
};
}
macro_rules! impl_construct_julia_type {
($ty:ty, $jl_ty:ident) => {
unsafe impl $crate::data::types::construct_type::ConstructType for $ty {
type Static = $ty;
#[inline]
fn construct_type_uncached<'target, Tgt>(
target: Tgt,
) -> $crate::data::managed::value::ValueData<'target, 'static, Tgt>
where
Tgt: $crate::memory::target::Target<'target>,
{
unsafe {
let ptr =
::std::ptr::NonNull::new_unchecked($jl_ty.cast::<::jl_sys::jl_value_t>());
target.data_from_ptr(ptr, $crate::private::Private)
}
}
fn construct_type_with_env_uncached<'target, Tgt>(
target: Tgt,
_env: &$crate::data::types::construct_type::TypeVarEnv,
) -> $crate::data::managed::value::ValueData<'target, 'static, Tgt>
where
Tgt: $crate::memory::target::Target<'target> {
unsafe {
let ptr =
::std::ptr::NonNull::new_unchecked($jl_ty.cast::<::jl_sys::jl_value_t>());
target.data_from_ptr(ptr, $crate::private::Private)
}
}
#[inline]
fn base_type<'target, Tgt>(_target: &Tgt) -> Option<$crate::data::managed::value::Value<'target, 'static>>
where
Tgt: $crate::memory::target::Target<'target>,
{
unsafe {
let ptr =
::std::ptr::NonNull::new_unchecked($jl_ty.cast::<::jl_sys::jl_value_t>());
Some(<$crate::data::managed::value::Value as $crate::data::managed::private::ManagedPriv>::wrap_non_null(ptr, $crate::private::Private))
}
}
}
};
}
pub mod bool;
pub mod char;
#[cfg(feature = "complex")]
pub mod complex;
#[cfg(feature = "f16")]
pub mod f16;
pub mod is_bits;
pub mod julia_enum;
pub mod nothing;
pub mod tuple;
pub mod typed_layout;
pub mod union;
pub mod valid_layout;