objc2_foundation/
fast_enumeration_state.rs

1use core::ffi::c_ulong;
2
3use objc2::encode::{Encode, Encoding, RefEncode};
4use objc2::runtime::AnyObject;
5
6#[repr(C)]
7#[derive(Clone, Copy, Debug, PartialEq)]
8pub struct NSFastEnumerationState {
9    pub state: c_ulong,
10    pub itemsPtr: *mut *mut AnyObject,
11    pub mutationsPtr: *mut c_ulong,
12    pub extra: [c_ulong; 5],
13}
14
15unsafe impl Encode for NSFastEnumerationState {
16    const ENCODING: Encoding = Encoding::Struct(
17        "?",
18        &[
19            Encoding::C_ULONG,
20            Encoding::Pointer(&Encoding::Object),
21            Encoding::Pointer(&Encoding::C_ULONG),
22            Encoding::Array(5, &Encoding::C_ULONG),
23        ],
24    );
25}
26
27unsafe impl RefEncode for NSFastEnumerationState {
28    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
29}