5个版本 (2个稳定版)
1.1.0 | 2019年10月16日 |
---|---|
1.0.0 | 2019年3月25日 |
0.0.3 | 2017年4月30日 |
0.0.2 | 2017年2月20日 |
0.0.1 | 2017年2月19日 |
190 in macOS 和 iOS API
每月293次下载
16KB
358 行
在Rust中创建和解析Objective-C类型编码。
Objective-C编译器将类型编码为字符串,以便在运行时使用。这个crate旨在提供一种强类型(而不是字符串类型)的方式来创建和描述这些类型编码,而无需在Rust中进行内存分配。
实现Encode
这个crate声明了一个Encode
特质,可以针对Objective-C编译器可以编码的类型实现。实现这个特质看起来像
unsafe impl Encode for CGPoint {
const ENCODING: Encoding<'static> =
Encoding::Struct("CGPoint", &[CGFloat::ENCODING, CGFLOAT::ENCODING]);
}
有关如何与更复杂的类型(如包含结构的结构)一起工作的示例,请参阅core_graphics
示例。
与编码字符串比较
Encoding
可以与Objective-C运行时的编码字符串进行比较
assert!(&i32::ENCODING == "i");
生成编码字符串
每个Encoding
都实现了Display
作为其字符串表示形式。这可以通过to_string
方法方便地生成
assert_eq!(i32::ENCODING.to_string(), "i");