#objective-c #macos-ios #macos #ios #encode

no-std objc2-encode

Objective-C 类型编码表示和解析

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

Download history 78022/week @ 2024-04-29 78429/week @ 2024-05-06 86581/week @ 2024-05-13 93778/week @ 2024-05-20 107415/week @ 2024-05-27 110869/week @ 2024-06-03 120646/week @ 2024-06-10 122560/week @ 2024-06-17 134166/week @ 2024-06-24 119446/week @ 2024-07-01 114142/week @ 2024-07-08 118287/week @ 2024-07-15 120050/week @ 2024-07-22 115805/week @ 2024-07-29 108747/week @ 2024-08-05 103612/week @ 2024-08-12

454,944 个月下载量
1,834 个 crate 中使用 (通过 objc2)

MIT 许可证

80KB
2K SLoC

objc2-encode

Latest version License Documentation CI

Rust 中的 Objective-C 类型编码

此 crate 提供了用于解析和比较使用 @encode 指令创建的 Objective-C 类型编码的类型。

有关更全面的概述,请参阅 文档

此 crate 是 objc2 项目 的一部分,请参阅该项目以获取相关 crate。


lib.rs:

Objective-C 类型编码

Objective-C 指令 @encode 将类型编码为字符串,并在运行时各种地方使用。

此 crate 提供了 Encoding 类型来描述和比较这些类型编码,以及 EncodingBox 类型,它执行相同的功能,但可以在运行时从编码中解析。

此 crate 中的类型作为 objc2::encodeobjc2 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);

其他资源

无运行时依赖

特性