use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UIContentConfiguration:
NSCopying + NSObjectProtocol + IsMainThreadOnly
{
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
#[method_id(@__retain_semantics Other makeContentView)]
unsafe fn makeContentView(&self) -> Retained<UIView>;
#[cfg(feature = "UIConfigurationState")]
#[method_id(@__retain_semantics Other updatedConfigurationForState:)]
unsafe fn updatedConfigurationForState(
&self,
state: &ProtocolObject<dyn UIConfigurationState>,
) -> Retained<Self>;
}
unsafe impl ProtocolType for dyn UIContentConfiguration {}
);
extern_protocol!(
pub unsafe trait UIContentView: NSObjectProtocol + IsMainThreadOnly {
#[method_id(@__retain_semantics Other configuration)]
unsafe fn configuration(&self) -> Retained<ProtocolObject<dyn UIContentConfiguration>>;
#[method(setConfiguration:)]
unsafe fn setConfiguration(
&self,
configuration: &ProtocolObject<dyn UIContentConfiguration>,
);
#[optional]
#[method(supportsConfiguration:)]
unsafe fn supportsConfiguration(
&self,
configuration: &ProtocolObject<dyn UIContentConfiguration>,
) -> bool;
}
unsafe impl ProtocolType for dyn UIContentView {}
);