//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use objc2::__framework_prelude::*;

use crate::*;

extern_protocol!(
    /// This protocol defines the calls made by the host to the CIPlugIn when initializing it
    ///
    /// The principal class of a CIPlugIn must support the CIPlugInRegistration protocol
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreimage/cipluginregistration?language=objc)
    pub unsafe trait CIPlugInRegistration {
        /// the plugin gets a chance to do custom initialization (like registration check ) here
        ///
        /// Load gets called once by the host when the first filter from the plug-in gets instantiated. Return of true means that the plugIn successfully initialized
        ///
        /// Parameter `host`: for future use only
        ///
        /// # Safety
        ///
        /// `host` must be a valid pointer.
        #[unsafe(method(load:))]
        #[unsafe(method_family = none)]
        unsafe fn load(&self, host: *mut c_void) -> bool;
    }
);
