Expand description
Shared low-level FFI core for the publishable non-Rust bindings.
This crate owns the common low-level substrate used by the C++ and Python layers. The public contract stays intentionally narrow: opaque model handles, explicit ownership, stable status/error categories, and bytes-in/bytes-out entry points on top.
Re-exports§
pub use abi::cj_affine_transform_4x4_t;pub use abi::cj_bbox_t;pub use abi::cj_bytes_list_t;pub use abi::cj_bytes_t;pub use abi::cj_cityjsonseq_auto_transform_options_t;pub use abi::cj_cityjsonseq_write_options_t;pub use abi::cj_cityobject_id_t;pub use abi::cj_contact_role_t;pub use abi::cj_contact_t;pub use abi::cj_contact_type_t;pub use abi::cj_error_kind_t;pub use abi::cj_geometry_boundary_t;pub use abi::cj_geometry_boundary_view_t;pub use abi::cj_geometry_draft_t;pub use abi::cj_geometry_id_t;pub use abi::cj_geometry_selection_spec_t;pub use abi::cj_geometry_template_id_t;pub use abi::cj_geometry_type_t;pub use abi::cj_geometry_types_t;pub use abi::cj_image_type_t;pub use abi::cj_indices_t;pub use abi::cj_indices_view_t;pub use abi::cj_json_write_options_t;pub use abi::cj_material_id_t;pub use abi::cj_model_capacities_t;pub use abi::cj_model_selection_t;pub use abi::cj_model_summary_t;pub use abi::cj_model_t;pub use abi::cj_model_type_t;pub use abi::cj_probe_t;pub use abi::cj_rgb_t;pub use abi::cj_rgba_t;pub use abi::cj_ring_draft_t;pub use abi::cj_root_kind_t;pub use abi::cj_semantic_id_t;pub use abi::cj_shell_draft_t;pub use abi::cj_solid_draft_t;pub use abi::cj_status_t;pub use abi::cj_string_view_t;pub use abi::cj_surface_draft_t;pub use abi::cj_texture_id_t;pub use abi::cj_texture_type_t;pub use abi::cj_transform_t;pub use abi::cj_uv_t;pub use abi::cj_uvs_t;pub use abi::cj_value_kind_t;pub use abi::cj_value_t;pub use abi::cj_version_t;pub use abi::cj_vertex_t;pub use abi::cj_vertices_t;pub use abi::cj_wrap_mode_t;pub use error::AbiError;pub use error::clear_last_error;pub use error::copy_last_error_message;pub use error::last_error_kind;pub use error::last_error_message_len;pub use error::last_error_status;pub use error::run_ffi;pub use error::set_last_error;pub use error::set_last_error_from_cityjson_lib_error;pub use handle::bytes_free;pub use handle::bytes_from_string;pub use handle::bytes_from_vec;pub use handle::bytes_list_free;pub use handle::bytes_list_from_vec;pub use handle::cityobject_draft_as_mut;pub use handle::cityobject_draft_free;pub use handle::cityobject_draft_into_handle;pub use handle::cityobject_draft_take;pub use handle::contact_as_mut;pub use handle::contact_free;pub use handle::contact_into_handle;pub use handle::contact_take;pub use handle::geometry_boundary_free;pub use handle::geometry_draft_as_mut;pub use handle::geometry_draft_free;pub use handle::geometry_draft_into_handle;pub use handle::geometry_draft_take;pub use handle::geometry_types_free;pub use handle::geometry_types_from_vec;pub use handle::indices_free;pub use handle::indices_from_vec;pub use handle::model_as_mut;pub use handle::model_as_ref;pub use handle::model_free;pub use handle::model_into_handle;pub use handle::model_selection_as_ref;pub use handle::model_selection_free;pub use handle::model_selection_into_handle;pub use handle::model_selection_take;pub use handle::model_take;pub use handle::ring_draft_as_mut;pub use handle::ring_draft_free;pub use handle::ring_draft_into_handle;pub use handle::ring_draft_take;pub use handle::shell_draft_as_mut;pub use handle::shell_draft_free;pub use handle::shell_draft_into_handle;pub use handle::shell_draft_take;pub use handle::solid_draft_as_mut;pub use handle::solid_draft_free;pub use handle::solid_draft_into_handle;pub use handle::solid_draft_take;pub use handle::surface_draft_as_mut;pub use handle::surface_draft_free;pub use handle::surface_draft_into_handle;pub use handle::surface_draft_take;pub use handle::uvs_free;pub use handle::uvs_from_vec;pub use handle::value_as_mut;pub use handle::value_free;pub use handle::value_into_handle;pub use handle::value_take;pub use handle::vertices_free;pub use handle::vertices_from_vec;