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
每月 51 次下载
用于 sfcgal
10KB
188 行代码(不包括注释)
sfcgal-sys
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_error
和w_sfcgal_get_last_warning
,分别读取包含错误消息的缓冲区和包含警告消息的缓冲区。
将来可能可以通过不要求将 SFCGAL 作为系统库安装来对其进行改进。
许可证
根据以下任一项许可证获得许可
- Apache 许可证第 2 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您有意提交以包含在本作品中的任何贡献均应按上述方式双许可,而无需任何附加条款或条件。
无运行时依赖项
~0–2MB
~40K SLoC