16 releases (6 stable)
4.0.3 | May 21, 2024 |
---|---|
4.0.0 | Dec 3, 2023 |
3.0.0 | Jul 31, 2023 |
2.0.0 | Jun 20, 2023 |
1.1.0 | Nov 19, 2021 |
#197 in macOS and iOS APIs
527,308 downloads per month
Used in 2,253 crates
(via objc2)
80KB
2K
SLoC
objc2-encode
Objective-C type-encoding in Rust.
This crates provides types to parse and compare Objective-C type-encodings
created with the @encode
directive.
See the docs for a more thorough overview.
This crate is part of the objc2
project,
see that for related crates.
lib.rs
:
Objective-C type-encoding
The Objective-C directive @encode
encodes types as strings, and this is
used in various places in the runtime.
This crate provides the Encoding
type to describe and compare these
type-encodings, and the EncodingBox
type which does the same, except
it can be parsed from an encoding at runtime.
The types from this crate is exported under the objc2
crate as
objc2::encode
, so usually you would use it from there.
Example
Parse an encoding from a string and compare it to a known encoding.
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);