11个重大版本

0.30.0 2024年6月7日
0.28.0 2024年5月3日
0.24.0 2024年2月15日
0.19.0 2023年12月15日

2461个在解析器实现


用于2个crate(通过ruby-prism

自定义许可

16MB
304K SLoC

C 304K SLoC // 0.1% comments Rust 241 SLoC // 0.0% comments

ruby-prism-sys

Rust对ruby/prism的C API的绑定。

示例

目前最佳示例可在集成测试(在tests/中)找到。

文档

由于此crate尚未发布,文档尚未上线。但是,您可以通过运行cargo doc并打开浏览器中的target/doc/ruby_prism_sys/index.html来生成它们。(您也可以通过执行cargo doc --open来合并这两个步骤!)

开发

依赖关系

除了Ruby prism依赖项外,您不需要Rust以外的任何东西。

更新绑定

build.rs(作为运行cargo buildcargo test等的一部分被调用)是我们告诉bindgen要为我们生成哪些类型、函数等的文件。它足够智能,知道要为我们在其中指定的项生成依赖项(例如,pm_parser_t具有类型为pm_token_t的字段,但我们不需要告诉bindgen关于pm_token_t的信息--它会自己找出并为此类型生成绑定)。

如果您要生成新的绑定,请相应更新build.rs,然后运行cargo doc并检查文档;这应该会告诉您bindgen是否为您生成了所需的所有内容。

测试

由于几乎所有代码都是由经过良好测试的bindgen库生成的,我们实际上只在tests/中有一些简要的集成测试,主要验证类型和函数是否适当地生成。(它们还提供了一些关于如何从Rust使用API的提示!)要运行测试,请运行cargo test

任何新的公开C API添加都应该有一个或两个测试。

依赖关系