#![cfg_attr(docsrs, feature(doc_cfg))]
mod error;
pub mod cf;
pub mod ffi;
pub mod utils;
pub use error::CFError;
#[cfg(feature = "cg")]
#[cfg_attr(docsrs, doc(cfg(feature = "cg")))]
pub mod cg;
#[cfg(feature = "iosurface")]
#[cfg_attr(docsrs, doc(cfg(feature = "iosurface")))]
pub mod iosurface;
#[cfg(feature = "dispatch")]
#[cfg_attr(docsrs, doc(cfg(feature = "dispatch")))]
pub mod dispatch_queue;
#[cfg(feature = "cm")]
#[cfg_attr(docsrs, doc(cfg(feature = "cm")))]
pub mod cm;
#[cfg(feature = "cv")]
#[cfg_attr(docsrs, doc(cfg(feature = "cv")))]
pub mod cv;
pub use utils::FourCharCode;
pub mod prelude {
pub use crate::cf::{CFArray, CFString, CFType, CFURL};
#[cfg(feature = "cg")]
pub use crate::cg::{CGPoint, CGRect, CGSize};
#[cfg(feature = "cm")]
pub use crate::cm::{CMBlockBuffer, CMFormatDescription, CMSampleBuffer, CMTime, CMTimeRange};
#[cfg(feature = "cv")]
pub use crate::cv::{
CVBuffer, CVImageBuffer, CVMetalTextureCache, CVPixelBuffer, CVPixelBufferLockFlags,
};
#[cfg(feature = "dispatch")]
pub use crate::dispatch_queue::{
DispatchGroup, DispatchQoS, DispatchQueue, DispatchSemaphore, DispatchSource,
};
#[cfg(feature = "iosurface")]
pub use crate::iosurface::{IOSurface, IOSurfaceLockOptions};
pub use crate::utils::FourCharCode;
}