#bindings #low-level #error #sfcgal

sys sfcgal-sys

对 SFCGAL 的底层 FFI 绑定

7 个版本 (重大更改)

0.7.0 2024 年 4 月 16 日
0.6.0 2023 年 3 月 27 日
0.5.0 2023 年 3 月 27 日
0.4.0 2020 年 9 月 2 日
0.1.0 2019 年 3 月 10 日

#271#low-level

Download history 4/week @ 2024-05-20 7/week @ 2024-05-27 2/week @ 2024-06-03 22/week @ 2024-06-17 17/week @ 2024-07-01 51/week @ 2024-07-29

每月 51 次下载
用于 sfcgal

MIT/Apache

10KB
188 行代码(不包括注释)

sfcgal-sys

Build Crates.io

Rust 对 SFCGAL 1.5.x C API 的底层 FFI 绑定。
请不要直接使用此 crate,建议使用其高级包装器:sfcgal-rs

内部结构

此 crate 包含一些 C 代码(使用 cc crate 编译为静态库)以包装 SFCGAL C API,以便替换错误和警告处理程序(默认使用 printf)。
它期望 SFCGAL 已作为系统库安装,并且您具有其 C API 的头文件。然后运行 bindgen 生成这些底层绑定。

除了所有 sfcgal_ 类型和外,此 crate 还公开

  • 一个 Rust initialize 函数:它调用 sfcgal_init() 函数,然后调用一个自定义的 w_sfcgal_init_handlers() 函数,该函数将错误和警告处理程序从 printf 替换为字符缓冲区。该 initialize 函数内部使用 std::sync::Once 来确保它只调用一次。
  • 两个 C 函数 w_sfcgal_get_last_errorw_sfcgal_get_last_warning,分别读取包含错误消息的缓冲区和包含警告消息的缓冲区。

将来可能可以通过不要求将 SFCGAL 作为系统库安装来对其进行改进。

许可证

根据以下任一项许可证获得许可

由您选择。

贡献

除非您明确声明,否则您有意提交以包含在本作品中的任何贡献均应按上述方式双许可,而无需任何附加条款或条件。

无运行时依赖项

~0–2MB
~40K SLoC