1个不稳定版本
0.0.1 | 2024年7月15日 |
---|
#23 在 #sysfs
196 每月下载量
用于 sysfs
19KB
451 行
sysfs-rs
[!重要] 请注意,这个crate非常不完整,并且将在相当长一段时间内不会被考虑为稳定版。公共API可能会发生重大变化。随着更多
sysfs
属性被封装和文档化,可能需要改变组织结构,以提供更加统一和一致的开发者体验。
这是什么?
这个crate包含三个核心目标
-
提供(最终)所有Linux
sysfs
属性的稳健函数和类型,组织结构良好。 -
为每个
sysfs
属性以及从这些属性读取和写入的数据类型进行文档说明。关于sysfs
的信息散布在各个地方,从源代码中的注释到邮件列表中的讨论线程。这个crate旨在汇总这些知识,使其易于消化。 -
提供属性宏辅助工具和转换函数,以生成任何给定
sysfs
属性的访问器。由于sysfs
相当大,且单个属性难以发现和正确使用,这个crate的内部宏对外部开发者开放,以便他们可以定义这个crate中缺少的属性和模块。- 请贡献属性定义!
如何使用它?
首先,有一些模块被定义为针对sysfs
目录,其中属性已经被封装。浏览该库的sysfs::api
模块的文档,看看是否满足您的需求。例如,有获取函数,例如sysfs::api::psu::power_supply::capacity
,它读取电池的电量为一个f32
百分比值(0.00 .. 1.00
)。然后是设置器,它们将类型化数据序列化并写入一个sysfs
属性文件,例如sysfs::api::psu::power_supply::set_charge_behavior
。
其次,如果在这个库的sysfs::api
模块中没有预先定义封装器,您可以自由地实现自己的!查看sysfs::lib
中的项目文档和现有模块(如sysfs::api::cpu
)的源代码,以获取开始的方法。此外,对api
模块的贡献非常欢迎并受到赞赏!
依赖关系
~285–740KB
~18K SLoC