cidre 0.16.0

Apple frameworks bindings for rust
Documentation
use crate::{blocks, define_obj_type, ml, ns, objc};

define_obj_type!(
    #[doc(alias = "MLState")]
    pub State(ns::Id)
);

impl State {
    #[objc::msg_send(getMultiArrayForStateNamed:handler:)]
    pub fn multi_array_for_state_named_handler(
        &self,
        state_name: &ns::String,
        handler: &mut blocks::NoEscBlock<fn(&mut ml::MultiArray)>,
    );

    #[inline]
    #[objc::available(macos = 15.0, ios = 18.0, watchos = 11.0, tvos = 18.0)]
    pub fn with_multi_array_for_state_named(
        &self,
        state_name: &ns::String,
        mut handler: impl FnMut(&mut ml::MultiArray),
    ) {
        let mut block = unsafe { blocks::NoEscBlock::stack1(&mut handler) };
        self.multi_array_for_state_named_handler(state_name, &mut block);
    }
}