1 个不稳定版本
0.1.0 | 2020年9月29日 |
---|
#78 in #bindgen
30KB
596 代码行
libpvcam-sys
Rust对Photometrics PVCam C SDK的绑定。高度实验性。
目前仅在Ubuntu上进行了测试。
依赖
rustup@ 1.22.1
libclang1-9
pvcam
来自 Photometrics- 仅验证了以下版本:
3.8.4.3
和3.9.4.0
- 仅验证了以下版本:
设置
假设按照Ubuntu的安装说明安装了pvcam。
备注
此库使用bindgen,它尽力遍历头文件并生成适当的结构和FFI接口。您会注意到此绑定中有大量的类型转换。可能调整bindgen设置可以减少这些转换。
PVCam SDK中有许多弃用功能,因此build.rs中的bindgen调用坚决不导入一系列函数。然而,最好使用whitelist
选项并从类似Photometrics的Python绑定的脚本构建列表。
模块结构
o -- lib.rs
`-- pvcam (public)
`-- internal (private)
公共的pvcam
模块重新导出bindgen生成的内部概念,并使其尽可能“Rusty”。其中一些Rust模式可能
- 不正确
- 过于主观
在第一个案例中:我对绑定中何时使用各种ptr类型的意义不够清楚。《原始指针文档》涵盖了这一点。另外,我是Rust的新手 ^_^。
在第二个案例中:Rust枚举映射到PVCam SDK枚举最清楚地展示了这一点。这些可能是提升到更高级别库的好候选者,该库实现其他特性,例如PVCamContext,当它离开作用域时释放资源。目标是使这一层尽可能像C一样。
待办事项
- [] 验证此readme中记录的依赖项
- [] 验证此readme中记录的安装步骤
无运行时依赖项
~0–1.8MB
~34K SLoC