16 个版本 (6 个稳定版)
| 4.0.3 | 2024年5月21日 |
|---|---|
| 4.0.0 | 2023年12月3日 |
| 3.0.0 | 2023年7月31日 |
| 2.0.0 | 2023年6月20日 |
| 1.1.0 | 2021年11月19日 |
#197 in macOS 和 iOS APIs
454,944 个月下载量
在 1,834 个 crate 中使用 (通过 objc2)
80KB
2K SLoC
objc2-encode
Rust 中的 Objective-C 类型编码
此 crate 提供了用于解析和比较使用 @encode 指令创建的 Objective-C 类型编码的类型。
有关更全面的概述,请参阅 文档。
此 crate 是 objc2 项目 的一部分,请参阅该项目以获取相关 crate。
lib.rs:
Objective-C 类型编码
Objective-C 指令 @encode 将类型编码为字符串,并在运行时各种地方使用。
此 crate 提供了 Encoding 类型来描述和比较这些类型编码,以及 EncodingBox 类型,它执行相同的功能,但可以在运行时从编码中解析。
此 crate 中的类型作为 objc2::encode 在 objc2 crate 中导出,因此通常您会从那里使用它。
示例
解析字符串中的编码并将其与已知编码进行比较。
use objc2_encode::{Encoding, EncodingBox};
let s = "{s=i}";
let enc = Encoding::Struct("s", &[Encoding::Int]);
let parsed: EncodingBox = s.parse()?;
assert!(enc.equivalent_to_box(&parsed));
assert_eq!(enc.to_string(), s);