use prebindgen_registry::Conversions;
use super::*;
impl CbindgenBuilder {
pub(crate) fn select_input_type(
&self,
ty: &TypeRef,
registry: &impl Conversions<()>,
emit: &prebindgen_registry::Emit,
) -> Option<ConverterImpl<()>> {
self.in_custom(ty, registry, emit)
.or_else(|| self.in_opaque_handle(ty))
.or_else(|| self.in_data_struct(ty, registry))
.or_else(|| self.in_value_opaque(ty, registry))
.or_else(|| self.in_enum(ty, registry))
.or_else(|| self.in_tagged_union(ty, registry, emit))
.or_else(|| self.in_string(ty))
.or_else(|| self.in_str(ty))
.or_else(|| self.in_bool(ty))
.or_else(|| self.in_scalar(ty))
.or_else(|| self.in_wrappers(ty, registry))
}
pub(crate) fn select_output_type(
&self,
ty: &TypeRef,
registry: &impl Conversions<()>,
emit: &prebindgen_registry::Emit,
) -> Option<ConverterImpl<()>> {
self.out_custom(ty, registry, emit)
.or_else(|| self.out_terminal(ty, registry, emit))
.or_else(|| self.out_wrappers(ty, registry))
}
}