apple-apis 0.1.0

System bindings for Apple APIs
use crate::util::*;

sys! {
	"dispatch"

	pub fn apple_apis_dispatch_dispatch_queue_main_drop(ptr: Ptr);
	pub fn apple_apis_dispatch_dispatch_queue_main_get() -> Ptr;
}

wrapper! {
	pub struct DispatchQueue;
	drop: sys::apple_apis_dispatch_dispatch_queue_main_drop;
}

impl DispatchQueue {
	pub fn main() -> Self {
		unsafe { Self::_new(sys::apple_apis_dispatch_dispatch_queue_main_get()) }
	}
}

/*
todo notes
class DispatchQueue
	convenience init()
	class func global()
	enum QoSClass
	struct Attributes
	enum AutoreleaseFrequency
	class OS_dispatch_queue_main
	class OS_dispatch_queue_global
	class DispatchSerialQueue
	class DispatchConcurrentQueue
	typealias dispatch_queue_main_t
	typealias dispatch_queue_global_t
	typealias dispatch_queue_serial_t
	typealias dispatch_queue_concurrent_t
	func async
	func asyncAfter
	func sync
	func asyncAndWait
	class func concurrentPerform
	var label
	var qos
	func setTarget
	func setSpecific
	func getSpecific
	class DispatchSpecificKey
	func dispatchMain
	struct SchedulerTimeType
	struct SchedulerOptions
	func asyncAfterUnsafe
	func asyncAndWait
	func asyncUnsafe
*/