3 个版本
0.0.2 | 2023 年 4 月 6 日 |
---|---|
0.0.1 | 2021 年 7 月 13 日 |
0.0.0 | 2021 年 4 月 14 日 |
#675 在 Rust 模式
每月 249,421 次下载
用于 226 个 crate (4 直接)
15KB
在基于能力的安全上下文中,环境权限 指的是程序可以执行并与外部世界交互的操作,而这些操作不是通过句柄表示的。
此 crate 定义了一个空函数 ambient_authority
,它返回类型为 AmbientAuthority
的值。这是一个空类型,用于函数签名中声明它们使用环境权限。当 API 在所有使用环境权限的函数中使用 AmbientAuthority
时,可以通过扫描对 ambient_authority
的调用快速定位对这些函数的所有调用。
在 API 中使用 AmbientAuthroity
类型
-
在任何使用环境权限的函数的参数列表末尾添加一个
AmbientAuthority
参数,并在该函数的文档注释中添加一个# 环境权限
部分,解释它们对环境权限的使用。 -
从这个 crate 中重新导出
ambient_authority
函数和AmbientAuthority
类型,以便用户可以轻松使用相同的版本。 -
确保所有其他
pub
函数避免使用环境权限,包括如静态Atomic
、Cell
、RefCell
、Mutex
、RwLock
或类似状态,以及使用环境权限进行初始化的once_cell
或lazy_static
状态。
例如,请参阅遵循这些指南的 cap-std crate 的 API。
面向能力的 API 中的一个酷特点是程序不需要是纯的就可以利用它们。话虽如此,对于旨在追求纯度的程序,这个仓库有一个 clippy 配置可以帮助。要使用它
-
手动确保所有直接依赖项遵循上述约定。
-
将 clippy.toml 文件复制到顶层源目录,在根模块(main.rs 或 lib.rs)中添加
#![deny(clippy::disallowed_methods)]
,然后运行cargo clippy
或等效命令。