objc2_core_services/generated/Metadata/
MDItem.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7#[cfg(feature = "objc2")]
8use objc2::__framework_prelude::*;
9use objc2_core_foundation::*;
10
11use crate::*;
12
13/// This is the type of a reference to MDItems.
14///
15/// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/mditem?language=objc)
16#[doc(alias = "MDItemRef")]
17#[repr(C)]
18pub struct MDItem {
19    inner: [u8; 0],
20    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
21}
22
23cf_type!(
24    unsafe impl MDItem {}
25);
26#[cfg(feature = "objc2")]
27cf_objc2_type!(
28    unsafe impl RefEncode<"__MDItem"> for MDItem {}
29);
30
31unsafe impl ConcreteType for MDItem {
32    /// Returns the type identifier of all MDItem instances.
33    #[doc(alias = "MDItemGetTypeID")]
34    #[inline]
35    fn type_id() -> CFTypeID {
36        extern "C-unwind" {
37            fn MDItemGetTypeID() -> CFTypeID;
38        }
39        unsafe { MDItemGetTypeID() }
40    }
41}
42
43impl MDItem {
44    /// Returns an metadata item for the given path.
45    ///
46    /// Parameter `allocator`: The CFAllocator which should be used to allocate
47    /// memory for the query and its sub-storage. This
48    /// parameter may be NULL in which case the current default
49    /// CFAllocator is used.
50    ///
51    /// Parameter `path`: A path to the file for which to create the MDItem.
52    /// [[Currently, the path must exist. MDItemRefs may or
53    /// may not be uniqued. Use CFEqual() to compare them.]]
54    ///
55    /// Returns: An MDItemRef, or NULL on failure.
56    ///
57    /// # Safety
58    ///
59    /// - `allocator` might not allow `None`.
60    /// - `path` might not allow `None`.
61    #[doc(alias = "MDItemCreate")]
62    #[inline]
63    pub unsafe fn new(
64        allocator: Option<&CFAllocator>,
65        path: Option<&CFString>,
66    ) -> Option<CFRetained<MDItem>> {
67        extern "C-unwind" {
68            fn MDItemCreate(
69                allocator: Option<&CFAllocator>,
70                path: Option<&CFString>,
71            ) -> Option<NonNull<MDItem>>;
72        }
73        let ret = unsafe { MDItemCreate(allocator, path) };
74        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
75    }
76
77    /// Returns an metadata item for the given path.
78    ///
79    /// Parameter `allocator`: The CFAllocator which should be used to allocate
80    /// memory for the query and its sub-storage. This
81    /// parameter may be NULL in which case the current default
82    /// CFAllocator is used.
83    ///
84    /// Parameter `url`: A url to the file for which to create the MDItem.
85    /// [[Currently, the file must exist. MDItemRefs may or
86    /// may not be uniqued. Use CFEqual() to compare them.]]
87    ///
88    /// Returns: An MDItemRef, or NULL on failure.
89    ///
90    /// # Safety
91    ///
92    /// - `allocator` might not allow `None`.
93    /// - `url` might not allow `None`.
94    #[doc(alias = "MDItemCreateWithURL")]
95    #[inline]
96    pub unsafe fn with_url(
97        allocator: Option<&CFAllocator>,
98        url: Option<&CFURL>,
99    ) -> Option<CFRetained<MDItem>> {
100        extern "C-unwind" {
101            fn MDItemCreateWithURL(
102                allocator: Option<&CFAllocator>,
103                url: Option<&CFURL>,
104            ) -> Option<NonNull<MDItem>>;
105        }
106        let ret = unsafe { MDItemCreateWithURL(allocator, url) };
107        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
108    }
109}
110
111/// Returns metadata items for the given urls.
112///
113/// Parameter `allocator`: The CFAllocator which should be used to allocate
114/// memory for the array. This parameter may be NULL in which case the current default
115/// CFAllocator is used.
116///
117/// Parameter `urls`: A CFArray of urls to the file for which to create the MDItem.
118///
119/// Returns: A CFArrayRef of MDItemRefs, or NULL on failure. Missing items will have kCFNull entries in the result array.
120///
121/// # Safety
122///
123/// - `allocator` might not allow `None`.
124/// - `urls` generic must be of the correct type.
125/// - `urls` might not allow `None`.
126#[inline]
127pub unsafe extern "C-unwind" fn MDItemsCreateWithURLs(
128    allocator: Option<&CFAllocator>,
129    urls: Option<&CFArray>,
130) -> Option<CFRetained<CFArray>> {
131    extern "C-unwind" {
132        fn MDItemsCreateWithURLs(
133            allocator: Option<&CFAllocator>,
134            urls: Option<&CFArray>,
135        ) -> Option<NonNull<CFArray>>;
136    }
137    let ret = unsafe { MDItemsCreateWithURLs(allocator, urls) };
138    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
139}
140
141impl MDItem {
142    /// Returns the value of the given attribute for the item.
143    ///
144    /// Parameter `item`: The item to be interrogated.
145    ///
146    /// Parameter `name`: The name of the desired attribute.
147    ///
148    /// Returns: A CFTypeRef, or NULL on failure, or if the attribute
149    /// does not exist, of if the attribute is not readable.
150    ///
151    /// # Safety
152    ///
153    /// `name` might not allow `None`.
154    #[doc(alias = "MDItemCopyAttribute")]
155    #[inline]
156    pub unsafe fn attribute(&self, name: Option<&CFString>) -> Option<CFRetained<CFType>> {
157        extern "C-unwind" {
158            fn MDItemCopyAttribute(
159                item: &MDItem,
160                name: Option<&CFString>,
161            ) -> Option<NonNull<CFType>>;
162        }
163        let ret = unsafe { MDItemCopyAttribute(self, name) };
164        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
165    }
166
167    /// Returns the values of the given attributes for the item.
168    ///
169    /// Parameter `item`: The item to be interrogated.
170    ///
171    /// Parameter `names`: A CFArray of the names of the desired attributes.
172    ///
173    /// Returns: A CFDictionary where the keys are the attribute names,
174    /// and the values are the attribute values, or NULL on
175    /// failure. If an attribute does not exist, or is
176    /// unreadable, there will be no key-value pair for it
177    /// in the dictionary.
178    ///
179    /// # Safety
180    ///
181    /// - `names` generic must be of the correct type.
182    /// - `names` might not allow `None`.
183    #[doc(alias = "MDItemCopyAttributes")]
184    #[inline]
185    pub unsafe fn attributes(&self, names: Option<&CFArray>) -> Option<CFRetained<CFDictionary>> {
186        extern "C-unwind" {
187            fn MDItemCopyAttributes(
188                item: &MDItem,
189                names: Option<&CFArray>,
190            ) -> Option<NonNull<CFDictionary>>;
191        }
192        let ret = unsafe { MDItemCopyAttributes(self, names) };
193        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
194    }
195
196    /// Returns an array of the attribute names existing in the item.
197    ///
198    /// Parameter `item`: The item to be interrogated.
199    ///
200    /// Returns: A CFArray of CFString attribute names, or NULL on
201    /// failure.
202    #[doc(alias = "MDItemCopyAttributeNames")]
203    #[inline]
204    pub unsafe fn attribute_names(&self) -> Option<CFRetained<CFArray>> {
205        extern "C-unwind" {
206            fn MDItemCopyAttributeNames(item: &MDItem) -> Option<NonNull<CFArray>>;
207        }
208        let ret = unsafe { MDItemCopyAttributeNames(self) };
209        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
210    }
211}
212
213/// Returns metadata for the given items.
214///
215/// Parameter `items`: A CFArray of MDItemRefs to items for which to fetch data
216///
217/// Parameter `names`: A CFArray of attribute names for which to fetch data.
218/// The attribute names are CFStrings
219///
220/// Returns: A CFArrayRef, or NULL on failure. Each entry in the array is either kCFNull,
221/// if the item is not accessible, or a CFArray of attribute values.
222/// If an attribute is not available, there will be a kCFNull in its slot in the nested array.
223///
224/// # Safety
225///
226/// - `items` generic must be of the correct type.
227/// - `items` might not allow `None`.
228/// - `names` generic must be of the correct type.
229/// - `names` might not allow `None`.
230#[inline]
231pub unsafe extern "C-unwind" fn MDItemsCopyAttributes(
232    items: Option<&CFArray>,
233    names: Option<&CFArray>,
234) -> Option<CFRetained<CFArray>> {
235    extern "C-unwind" {
236        fn MDItemsCopyAttributes(
237            items: Option<&CFArray>,
238            names: Option<&CFArray>,
239        ) -> Option<NonNull<CFArray>>;
240    }
241    let ret = unsafe { MDItemsCopyAttributes(items, names) };
242    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
243}
244
245impl MDItem {
246    /// # Safety
247    ///
248    /// - `items` generic must be of the correct type.
249    /// - `items` might not allow `None`.
250    /// - `completion_handler` might not allow `None`.
251    #[doc(alias = "MDItemGetCacheFileDescriptors")]
252    #[cfg(feature = "block2")]
253    #[inline]
254    pub unsafe fn cache_file_descriptors(
255        items: Option<&CFArray>,
256        completion_handler: Option<&block2::DynBlock<dyn Fn(*const CFArray)>>,
257    ) {
258        extern "C-unwind" {
259            fn MDItemGetCacheFileDescriptors(
260                items: Option<&CFArray>,
261                completion_handler: Option<&block2::DynBlock<dyn Fn(*const CFArray)>>,
262            );
263        }
264        unsafe { MDItemGetCacheFileDescriptors(items, completion_handler) }
265    }
266}
267
268extern "C" {
269    /// This is the date that the last metadata attribute was changed.
270    ///
271    ///
272    /// UTI Type pedigree for a file for example a jpeg file will have the
273    /// following ItemContentType public.jpeg/public.image/public.data
274    /// the kMDItemContentType is set by the sniffer, any changes to this
275    /// value will get over written by the sniffer when the contents of
276    /// this MDItemRef changes. Type is a CFStringRef
277    ///
278    ///
279    /// Represents keywords associated with this particular
280    /// MDItemRef. Example Keywords might be Birthday,Important etc. Type
281    /// is a CFArray of CFStrings
282    ///
283    ///
284    /// The title of this particular MDItemRef. Title of the document, or
285    /// it could be the title of this mp3 or a subject of a mail
286    /// message. Type is a CFString
287    ///
288    ///
289    /// The list of author/authors that has worked on this file. There
290    /// could be 0 or more authors of a particular file. The order of the
291    /// authors in the array is preserved, but is not intended to represent
292    /// the main author or relative importance of the authors. Type is a
293    /// CFArray of CFStrings.
294    ///
295    ///
296    /// The list of editor/editors that has worked on this file. There
297    /// could be 0 or more editors of a particular file. The order of the
298    /// editors in the array is preserved, but is not intended to represent
299    /// the main editor or relative importance of the editors. Type is a
300    /// CFArray of CFStrings.
301    ///
302    ///
303    /// The list of people who are visible in an image or movie or
304    /// written about in a document. Type is CFArray of CFStrings.
305    ///
306    ///
307    /// The list of projects etc that this file is part of. For example if
308    /// you were working on a movie, all of the movie files could be marked
309    /// as belonging to the project "My movie" then a query could be done
310    /// kMDItemProjects = "My movie" and all of the related files would
311    /// show up. Type is a CFArray of CFStrings
312    ///
313    ///
314    /// This is a comment related to a file, and can be any random
315    /// string. Type is a CFString
316    ///
317    ///
318    /// This is the copyright of the content. Type is a CFString
319    ///
320    ///
321    /// This is the date that the file was last downloaded / received.
322    ///
323    ///
324    /// This attribute indicates where the item was obtained from.
325    /// Examples:
326    /// - downloaded file may refer to the site they were downloaded from,
327    /// the refering URL, etc
328    /// - files reveived by email may indicate who sent the file, the
329    /// message subject, etc
330    /// Type is a CFArray of CFStrings
331    ///
332    ///
333    /// This is the date that the file was last used, this field is updated
334    /// by LaunchServices everytime a file is opend by double clicking or
335    /// by asking LaunchServices to open a file. Type is a CFDate
336    ///
337    ///
338    /// This is the date that the contents of the file were created,
339    /// has an application specific semantic.
340    /// Type is a CFDate.
341    ///
342    ///
343    /// This is the date that the contents of the file were last
344    /// modified, has an application specific semantic. For example an
345    /// application can use this field to mark when the file was last
346    /// modified, this date is not related to the file system modification
347    /// date, but can be independent of that. This allows tracking of the
348    /// last time the content was modified irrespective of the last time the
349    /// file was modified. Type is a CFDate.
350    ///
351    ///
352    /// This is the date that the file was moved into the current location.
353    /// Not all files will have this attribute.  Not all file systems support
354    /// this attribute.
355    ///
356    ///
357    /// This is the duration, in seconds, of the content of the file (if
358    /// appropriate).  A value of 10.5 represents media whose content is
359    /// 10 and 1/2 seconds long.  Type is a CFNumber.
360    ///
361    ///
362    /// A list of contacts that are somehow associated with this document,
363    /// beyond what is captured as Author.
364    ///
365    ///
366    /// A version number for this item. Type is a CFString
367    ///
368    ///
369    /// The height of the document in pixels (ie Image height or Video frame height)
370    ///
371    ///
372    /// The width of the document in pixels (ie Image width or Video frame width)
373    ///
374    ///
375    /// The total number of pixels in the document.  Type is a CFNumber.
376    ///
377    ///
378    /// What color space model is this document following
379    /// (For example, are examples "RGB", "CMYK", "YUV", "YCbCr")
380    ///
381    ///
382    /// Number of bits per sample
383    /// For example bit depth of an image (8-bit, 16-bit etc..) or bit
384    /// depth per audio sample of uncompressed audio data (8, 16, 24, 32,
385    /// 64, etc..)
386    ///
387    ///
388    /// Indicates if the flash was used to take the picture. 0 means flash did not fire
389    ///
390    ///
391    /// The actual focal length of the lens in mm.
392    ///
393    ///
394    /// Device make that was used to acquire this document
395    ///
396    ///
397    /// Device model that was used to acquire this document
398    ///
399    ///
400    /// The ISO Speed the camera was set to when the image was
401    /// taken. Examples are 100, 200, 400, etc.
402    ///
403    ///
404    /// The orientation of the data. Values are 0 is "Landscape" or 1 is "Portrait"
405    ///
406    ///
407    /// The names of the various layers in the file
408    ///
409    ///
410    /// The white balance setting of the camera when the image was
411    /// acquired. 0 is auto white balance and 1 is manual
412    ///
413    ///
414    /// The size of the lens aperture as a log-scale APEX value
415    /// when the image was acquired.
416    ///
417    ///
418    /// Name of the color profile used for the image
419    ///
420    ///
421    /// Resolution width of this image in DPI
422    ///
423    ///
424    /// Resolution height of this image in DPI
425    ///
426    ///
427    /// Mode that was used for the exposure. 0 is auto exposure, 1 is
428    /// manual, and 2 is auto bracket.
429    ///
430    ///
431    /// Time that the lens was open during exposure
432    ///
433    ///
434    /// Lens model that was used to acquire this document
435    ///
436    ///
437    /// The verion of the EXIF header that was used to generate the metadata
438    ///
439    ///
440    /// The version of GPSInfoIFD header that was used to generate the metadata
441    ///
442    ///
443    /// The codecs used to encode/decode the media
444    ///
445    ///
446    /// The media extensions used to decode the media
447    ///
448    ///
449    /// Media types present in the content
450    ///
451    ///
452    /// Whether the content is prepared for streaming
453    ///
454    ///
455    /// The total byte rate (audio
456    /// &
457    /// video combined) of the media
458    ///
459    ///
460    /// The video byte rate
461    ///
462    ///
463    /// The audio byte rate
464    ///
465    ///
466    /// Delivery type Fast start or RTSP
467    ///
468    ///
469    /// The title for a collection of media. This is analagous to a record album,
470    /// or photo album whichs are collections of audio or images. Type is a CFString.
471    ///
472    ///
473    /// Boolean indicating if this image file has an alpha channel. Type is
474    /// a CFBoolean.
475    ///
476    ///
477    /// Indicates if the flash was used to take the picture. 0 means no
478    /// red-eye reduction mode or unknown. 1 means red-eye reduction
479    /// supported.
480    ///
481    ///
482    /// The metering mode (Unknown, Average, CenterWeightedAverage, Spot,
483    /// MultiSpot, Pattern, Partial)
484    ///
485    ///
486    /// The smallest F number of the lens. The unit is the APEX
487    /// value. Ordinarily it is given in the range of 00.00 to 99.99.
488    ///
489    ///
490    /// The focal length of the lens divided by the diameter of the aperture
491    /// when the image was acquired.
492    ///
493    ///
494    /// The class of the program used by the camera to set exposure when
495    /// the picture is taken (Manual, Normal, Aperture priority, ...)
496    ///
497    ///
498    /// The time  of the exposure.
499    ///
500    ///
501    /// A publishable entry providing a synopsis of the contents of the
502    /// objectdata.
503    ///
504    ///
505    /// Other editorial instructions concerning the use of the objectdata,
506    /// such as embargoes and warnings.
507    ///
508    ///
509    /// Identifies city of objectdata origin according to guidelines
510    /// established by the provider.
511    ///
512    ///
513    /// Identifies Province/State of origin according to guidelines
514    /// established by the provider.
515    ///
516    ///
517    /// Provides full, publishable, name of the country/primary location
518    /// where the intellectual property of the objectdata was created,
519    /// according to guidelines of the provider.
520    ///
521    ///
522    /// The version of GPSInfoIFD in EXIF used to generate the metadata.
523    ///
524    ///
525    /// The altitude of the item in meters above sea level, expressed
526    /// using the WGS84 datum.  Negative values lie below sea level.
527    ///
528    ///
529    /// The latitude of the item in degrees north of the equator, expressed
530    /// using the WGS84 datum.  Negative values lie south of the equator.
531    ///
532    ///
533    /// The longitude of the item in degrees east of the prime meridian,
534    /// expressed using the WGS84 datum.  Negative values lie west of the prime meridian.
535    ///
536    ///
537    /// The timestamp on the item.  This generally is used to indicate the time at
538    /// which the event captured by the item took place.
539    ///
540    ///
541    /// The speed of the item, in kilometers per hour.
542    ///
543    ///
544    /// The direction of travel of the item, in degrees from true north.
545    ///
546    ///
547    /// The direction of the item's image, in degrees from true north.
548    ///
549    ///
550    /// The name of the location or point of interest associated with the item.
551    /// The name may be user provided.
552    ///
553    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemattributechangedate?language=objc)
554    pub static kMDItemAttributeChangeDate: Option<&'static CFString>;
555}
556
557extern "C" {
558    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontenttype?language=objc)
559    pub static kMDItemContentType: Option<&'static CFString>;
560}
561
562extern "C" {
563    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontenttypetree?language=objc)
564    pub static kMDItemContentTypeTree: Option<&'static CFString>;
565}
566
567extern "C" {
568    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemkeywords?language=objc)
569    pub static kMDItemKeywords: Option<&'static CFString>;
570}
571
572extern "C" {
573    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtitle?language=objc)
574    pub static kMDItemTitle: Option<&'static CFString>;
575}
576
577extern "C" {
578    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemauthors?language=objc)
579    pub static kMDItemAuthors: Option<&'static CFString>;
580}
581
582extern "C" {
583    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemeditors?language=objc)
584    pub static kMDItemEditors: Option<&'static CFString>;
585}
586
587extern "C" {
588    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemparticipants?language=objc)
589    pub static kMDItemParticipants: Option<&'static CFString>;
590}
591
592extern "C" {
593    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemprojects?language=objc)
594    pub static kMDItemProjects: Option<&'static CFString>;
595}
596
597extern "C" {
598    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdownloadeddate?language=objc)
599    pub static kMDItemDownloadedDate: Option<&'static CFString>;
600}
601
602extern "C" {
603    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemwherefroms?language=objc)
604    pub static kMDItemWhereFroms: Option<&'static CFString>;
605}
606
607extern "C" {
608    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcomment?language=objc)
609    pub static kMDItemComment: Option<&'static CFString>;
610}
611
612extern "C" {
613    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcopyright?language=objc)
614    pub static kMDItemCopyright: Option<&'static CFString>;
615}
616
617extern "C" {
618    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlastuseddate?language=objc)
619    pub static kMDItemLastUsedDate: Option<&'static CFString>;
620}
621
622extern "C" {
623    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontentcreationdate?language=objc)
624    pub static kMDItemContentCreationDate: Option<&'static CFString>;
625}
626
627extern "C" {
628    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontentmodificationdate?language=objc)
629    pub static kMDItemContentModificationDate: Option<&'static CFString>;
630}
631
632extern "C" {
633    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdateadded?language=objc)
634    pub static kMDItemDateAdded: Option<&'static CFString>;
635}
636
637extern "C" {
638    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdurationseconds?language=objc)
639    pub static kMDItemDurationSeconds: Option<&'static CFString>;
640}
641
642extern "C" {
643    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontactkeywords?language=objc)
644    pub static kMDItemContactKeywords: Option<&'static CFString>;
645}
646
647extern "C" {
648    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemversion?language=objc)
649    pub static kMDItemVersion: Option<&'static CFString>;
650}
651
652extern "C" {
653    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempixelheight?language=objc)
654    pub static kMDItemPixelHeight: Option<&'static CFString>;
655}
656
657extern "C" {
658    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemxmpcredit?language=objc)
659    pub static kMDItemXMPCredit: Option<&'static CFString>;
660}
661
662extern "C" {
663    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemxmpdigitalsourcetype?language=objc)
664    pub static kMDItemXMPDigitalSourceType: Option<&'static CFString>;
665}
666
667extern "C" {
668    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempixelwidth?language=objc)
669    pub static kMDItemPixelWidth: Option<&'static CFString>;
670}
671
672extern "C" {
673    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempixelcount?language=objc)
674    pub static kMDItemPixelCount: Option<&'static CFString>;
675}
676
677extern "C" {
678    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcolorspace?language=objc)
679    pub static kMDItemColorSpace: Option<&'static CFString>;
680}
681
682extern "C" {
683    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditembitspersample?language=objc)
684    pub static kMDItemBitsPerSample: Option<&'static CFString>;
685}
686
687extern "C" {
688    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemflashonoff?language=objc)
689    pub static kMDItemFlashOnOff: Option<&'static CFString>;
690}
691
692extern "C" {
693    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfocallength?language=objc)
694    pub static kMDItemFocalLength: Option<&'static CFString>;
695}
696
697extern "C" {
698    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemacquisitionmake?language=objc)
699    pub static kMDItemAcquisitionMake: Option<&'static CFString>;
700}
701
702extern "C" {
703    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemacquisitionmodel?language=objc)
704    pub static kMDItemAcquisitionModel: Option<&'static CFString>;
705}
706
707extern "C" {
708    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemisospeed?language=objc)
709    pub static kMDItemISOSpeed: Option<&'static CFString>;
710}
711
712extern "C" {
713    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemorientation?language=objc)
714    pub static kMDItemOrientation: Option<&'static CFString>;
715}
716
717extern "C" {
718    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlayernames?language=objc)
719    pub static kMDItemLayerNames: Option<&'static CFString>;
720}
721
722extern "C" {
723    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemwhitebalance?language=objc)
724    pub static kMDItemWhiteBalance: Option<&'static CFString>;
725}
726
727extern "C" {
728    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaperture?language=objc)
729    pub static kMDItemAperture: Option<&'static CFString>;
730}
731
732extern "C" {
733    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemprofilename?language=objc)
734    pub static kMDItemProfileName: Option<&'static CFString>;
735}
736
737extern "C" {
738    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemresolutionwidthdpi?language=objc)
739    pub static kMDItemResolutionWidthDPI: Option<&'static CFString>;
740}
741
742extern "C" {
743    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemresolutionheightdpi?language=objc)
744    pub static kMDItemResolutionHeightDPI: Option<&'static CFString>;
745}
746
747extern "C" {
748    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexposuremode?language=objc)
749    pub static kMDItemExposureMode: Option<&'static CFString>;
750}
751
752extern "C" {
753    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexposuretimeseconds?language=objc)
754    pub static kMDItemExposureTimeSeconds: Option<&'static CFString>;
755}
756
757extern "C" {
758    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexifversion?language=objc)
759    pub static kMDItemEXIFVersion: Option<&'static CFString>;
760}
761
762extern "C" {
763    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcameraowner?language=objc)
764    pub static kMDItemCameraOwner: Option<&'static CFString>;
765}
766
767extern "C" {
768    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfocallength35mm?language=objc)
769    pub static kMDItemFocalLength35mm: Option<&'static CFString>;
770}
771
772extern "C" {
773    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlensmodel?language=objc)
774    pub static kMDItemLensModel: Option<&'static CFString>;
775}
776
777extern "C" {
778    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexifgpsversion?language=objc)
779    pub static kMDItemEXIFGPSVersion: Option<&'static CFString>;
780}
781
782extern "C" {
783    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaltitude?language=objc)
784    pub static kMDItemAltitude: Option<&'static CFString>;
785}
786
787extern "C" {
788    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlatitude?language=objc)
789    pub static kMDItemLatitude: Option<&'static CFString>;
790}
791
792extern "C" {
793    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlongitude?language=objc)
794    pub static kMDItemLongitude: Option<&'static CFString>;
795}
796
797extern "C" {
798    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemspeed?language=objc)
799    pub static kMDItemSpeed: Option<&'static CFString>;
800}
801
802extern "C" {
803    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtimestamp?language=objc)
804    pub static kMDItemTimestamp: Option<&'static CFString>;
805}
806
807extern "C" {
808    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpstrack?language=objc)
809    pub static kMDItemGPSTrack: Option<&'static CFString>;
810}
811
812extern "C" {
813    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemimagedirection?language=objc)
814    pub static kMDItemImageDirection: Option<&'static CFString>;
815}
816
817extern "C" {
818    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemnamedlocation?language=objc)
819    pub static kMDItemNamedLocation: Option<&'static CFString>;
820}
821
822extern "C" {
823    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsstatus?language=objc)
824    pub static kMDItemGPSStatus: Option<&'static CFString>;
825}
826
827extern "C" {
828    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsmeasuremode?language=objc)
829    pub static kMDItemGPSMeasureMode: Option<&'static CFString>;
830}
831
832extern "C" {
833    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdop?language=objc)
834    pub static kMDItemGPSDOP: Option<&'static CFString>;
835}
836
837extern "C" {
838    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsmapdatum?language=objc)
839    pub static kMDItemGPSMapDatum: Option<&'static CFString>;
840}
841
842extern "C" {
843    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdestlatitude?language=objc)
844    pub static kMDItemGPSDestLatitude: Option<&'static CFString>;
845}
846
847extern "C" {
848    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdestlongitude?language=objc)
849    pub static kMDItemGPSDestLongitude: Option<&'static CFString>;
850}
851
852extern "C" {
853    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdestbearing?language=objc)
854    pub static kMDItemGPSDestBearing: Option<&'static CFString>;
855}
856
857extern "C" {
858    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdestdistance?language=objc)
859    pub static kMDItemGPSDestDistance: Option<&'static CFString>;
860}
861
862extern "C" {
863    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsprocessingmethod?language=objc)
864    pub static kMDItemGPSProcessingMethod: Option<&'static CFString>;
865}
866
867extern "C" {
868    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsareainformation?language=objc)
869    pub static kMDItemGPSAreaInformation: Option<&'static CFString>;
870}
871
872extern "C" {
873    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdatestamp?language=objc)
874    pub static kMDItemGPSDateStamp: Option<&'static CFString>;
875}
876
877extern "C" {
878    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgpsdifferental?language=objc)
879    pub static kMDItemGPSDifferental: Option<&'static CFString>;
880}
881
882extern "C" {
883    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmediaextensions?language=objc)
884    pub static kMDItemMediaExtensions: Option<&'static CFString>;
885}
886
887extern "C" {
888    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcodecs?language=objc)
889    pub static kMDItemCodecs: Option<&'static CFString>;
890}
891
892extern "C" {
893    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmediatypes?language=objc)
894    pub static kMDItemMediaTypes: Option<&'static CFString>;
895}
896
897extern "C" {
898    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemstreamable?language=objc)
899    pub static kMDItemStreamable: Option<&'static CFString>;
900}
901
902extern "C" {
903    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtotalbitrate?language=objc)
904    pub static kMDItemTotalBitRate: Option<&'static CFString>;
905}
906
907extern "C" {
908    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemvideobitrate?language=objc)
909    pub static kMDItemVideoBitRate: Option<&'static CFString>;
910}
911
912extern "C" {
913    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudiobitrate?language=objc)
914    pub static kMDItemAudioBitRate: Option<&'static CFString>;
915}
916
917extern "C" {
918    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdeliverytype?language=objc)
919    pub static kMDItemDeliveryType: Option<&'static CFString>;
920}
921
922extern "C" {
923    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemalbum?language=objc)
924    pub static kMDItemAlbum: Option<&'static CFString>;
925}
926
927extern "C" {
928    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemhasalphachannel?language=objc)
929    pub static kMDItemHasAlphaChannel: Option<&'static CFString>;
930}
931
932extern "C" {
933    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemredeyeonoff?language=objc)
934    pub static kMDItemRedEyeOnOff: Option<&'static CFString>;
935}
936
937extern "C" {
938    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmeteringmode?language=objc)
939    pub static kMDItemMeteringMode: Option<&'static CFString>;
940}
941
942extern "C" {
943    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmaxaperture?language=objc)
944    pub static kMDItemMaxAperture: Option<&'static CFString>;
945}
946
947extern "C" {
948    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfnumber?language=objc)
949    pub static kMDItemFNumber: Option<&'static CFString>;
950}
951
952extern "C" {
953    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexposureprogram?language=objc)
954    pub static kMDItemExposureProgram: Option<&'static CFString>;
955}
956
957extern "C" {
958    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexposuretimestring?language=objc)
959    pub static kMDItemExposureTimeString: Option<&'static CFString>;
960}
961
962extern "C" {
963    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemheadline?language=objc)
964    pub static kMDItemHeadline: Option<&'static CFString>;
965}
966
967extern "C" {
968    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditeminstructions?language=objc)
969    pub static kMDItemInstructions: Option<&'static CFString>;
970}
971
972extern "C" {
973    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcity?language=objc)
974    pub static kMDItemCity: Option<&'static CFString>;
975}
976
977extern "C" {
978    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemstateorprovince?language=objc)
979    pub static kMDItemStateOrProvince: Option<&'static CFString>;
980}
981
982extern "C" {
983    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcountry?language=objc)
984    pub static kMDItemCountry: Option<&'static CFString>;
985}
986
987extern "C" {
988    /// Contains the HTML content of the document. Type is a CFString.
989    /// This field is only used by Spotlight importers to return HTML contents of a file.  Except in special cases,
990    /// this field is not a replacement for kMDItemTextContent which should still be returned.
991    /// This field does not particpate in Spotlight queries.
992    ///
993    ///
994    /// Contains the text content of the document. Type is a CFString.
995    ///
996    ///
997    /// This is the localized version of the LaunchServices call
998    /// LSCopyDisplayNameForURL()/LSCopyDisplayNameForRef().
999    ///
1000    ///
1001    /// This is the file name of the MDItemRef. Type is a CFString
1002    ///
1003    ///
1004    /// This is the complete path to the MDItemRef. Type is a CFString.
1005    ///
1006    ///
1007    /// The total logical size of the file (data and resources) on disk in bytes. Type is a CFNumber.
1008    ///
1009    ///
1010    /// This is the date that the file was created. Type is a CFDate.
1011    ///
1012    ///
1013    /// This is the date the the file content last changed. This is a CFDate.
1014    ///
1015    ///
1016    /// User-id of owner of the file. Type is a CFNumber.
1017    ///
1018    ///
1019    /// Group-id of owner of the file. Type is a CFNumber.
1020    ///
1021    ///
1022    /// Boolean indicating if this MDItem references a file that still
1023    /// exists. The file that the MDItem references might have been
1024    /// deleted. Type is a CFBoolean.
1025    ///
1026    ///
1027    /// Boolean indicating if this file is readable. Type is a CFBoolean.
1028    ///
1029    ///
1030    /// Boolean indicating if this file is writable. Type is a CFBoolean.
1031    ///
1032    ///
1033    /// Number of files in directory. Type is a CFNumber.
1034    ///
1035    ///
1036    /// Boolean indicating if this file has a custom icon. Type is a CFBoolean.
1037    ///
1038    ///
1039    /// Boolean indicating if this file has its extension hidden. Type is a CFBoolean.
1040    ///
1041    ///
1042    /// Boolean indicating if this file is stationery. Type is a CFBoolean.
1043    ///
1044    ///
1045    /// Boolean indicating if this file is visible. Type is a CFBoolean.
1046    ///
1047    ///
1048    /// Number indicating which finder label is in use (0-7). Type is a CFNumber.
1049    ///
1050    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsname?language=objc)
1051    pub static kMDItemFSName: Option<&'static CFString>;
1052}
1053
1054extern "C" {
1055    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdisplayname?language=objc)
1056    pub static kMDItemDisplayName: Option<&'static CFString>;
1057}
1058
1059extern "C" {
1060    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempath?language=objc)
1061    pub static kMDItemPath: Option<&'static CFString>;
1062}
1063
1064extern "C" {
1065    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfssize?language=objc)
1066    pub static kMDItemFSSize: Option<&'static CFString>;
1067}
1068
1069extern "C" {
1070    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfscreationdate?language=objc)
1071    pub static kMDItemFSCreationDate: Option<&'static CFString>;
1072}
1073
1074extern "C" {
1075    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfscontentchangedate?language=objc)
1076    pub static kMDItemFSContentChangeDate: Option<&'static CFString>;
1077}
1078
1079extern "C" {
1080    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsowneruserid?language=objc)
1081    pub static kMDItemFSOwnerUserID: Option<&'static CFString>;
1082}
1083
1084extern "C" {
1085    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsownergroupid?language=objc)
1086    pub static kMDItemFSOwnerGroupID: Option<&'static CFString>;
1087}
1088
1089extern "C" {
1090    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsexists?language=objc)
1091    #[deprecated = "No longer supported"]
1092    pub static kMDItemFSExists: Option<&'static CFString>;
1093}
1094
1095extern "C" {
1096    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsisreadable?language=objc)
1097    #[deprecated = "No longer supported"]
1098    pub static kMDItemFSIsReadable: Option<&'static CFString>;
1099}
1100
1101extern "C" {
1102    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsiswriteable?language=objc)
1103    #[deprecated = "No longer supported"]
1104    pub static kMDItemFSIsWriteable: Option<&'static CFString>;
1105}
1106
1107extern "C" {
1108    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfshascustomicon?language=objc)
1109    pub static kMDItemFSHasCustomIcon: Option<&'static CFString>;
1110}
1111
1112extern "C" {
1113    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsisextensionhidden?language=objc)
1114    pub static kMDItemFSIsExtensionHidden: Option<&'static CFString>;
1115}
1116
1117extern "C" {
1118    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsisstationery?language=objc)
1119    pub static kMDItemFSIsStationery: Option<&'static CFString>;
1120}
1121
1122extern "C" {
1123    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsinvisible?language=objc)
1124    pub static kMDItemFSInvisible: Option<&'static CFString>;
1125}
1126
1127extern "C" {
1128    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfslabel?language=objc)
1129    pub static kMDItemFSLabel: Option<&'static CFString>;
1130}
1131
1132extern "C" {
1133    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfsnodecount?language=objc)
1134    pub static kMDItemFSNodeCount: Option<&'static CFString>;
1135}
1136
1137extern "C" {
1138    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemhtmlcontent?language=objc)
1139    pub static kMDItemHTMLContent: Option<&'static CFString>;
1140}
1141
1142extern "C" {
1143    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtextcontent?language=objc)
1144    pub static kMDItemTextContent: Option<&'static CFString>;
1145}
1146
1147extern "C" {
1148    /// The sample rate of the audio data contained in the file. The sample rate is a
1149    /// float value representing hz (audio_frames/second). For example: 44100.0, 22254.54.
1150    /// Type is a CFNumber (float).
1151    ///
1152    ///
1153    /// The number of channels in the audio data contained in the file. This item only represents
1154    /// the number of discreet channels of audio data found in the file. It does not indicate
1155    /// any configuration of the data in regards to a user's speaker setup.
1156    /// Type is a CFNumber (integer).
1157    ///
1158    ///
1159    /// The tempo of the music contained in the audio file in Beats Per Minute.
1160    /// Type is a CFNumber (float).
1161    ///
1162    ///
1163    /// The musical key of the song/composition contained in an audio file.
1164    /// For example: C, Dm, F#m, Bb. Type is a CFString.
1165    ///
1166    ///
1167    /// The time signature of the musical composition contained in the audio/MIDI file.
1168    /// For example: "4/4", "7/8". Type is a CFString.
1169    ///
1170    ///
1171    /// The name of the application that encoded the data contained in the audio file.
1172    /// Type is a CFString.
1173    ///
1174    ///
1175    /// The composer of the song/composition contained in the audio file.
1176    /// Type is a CFString.
1177    ///
1178    ///
1179    /// The lyricist/text writer for song/composition contained in the audio file.
1180    /// Type is a CFString.
1181    ///
1182    ///
1183    /// The track number of a song/composition when it is part of an album (kMDItemAlbum).
1184    /// Type is a CFNumber (integer).
1185    ///
1186    ///
1187    /// The recording date of the song/composition. This information differs from
1188    /// the kMDItemContentCreationDate attribute as it indicates the date that the
1189    /// 'art' was created, in contrast to ContentCreationDate which for example, could indicate
1190    /// the creation date of an edited or 'mastered' version of the original art.
1191    /// Type is a CFDate.
1192    ///
1193    ///
1194    /// The musical genre of the song/composition contained in the audio file.
1195    /// For example: Jazz, Pop, Rock, Classical. Type is a CFString.
1196    ///
1197    ///
1198    /// This attribute indicates whether the MIDI sequence contained in the file
1199    /// is setup for use with a General MIDI device. Type is a CFBoolean.
1200    ///
1201    ///
1202    /// This attribute indicates what year the item was recorded on.
1203    /// Type is a CFNumber
1204    ///
1205    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudiosamplerate?language=objc)
1206    pub static kMDItemAudioSampleRate: Option<&'static CFString>;
1207}
1208
1209extern "C" {
1210    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudiochannelcount?language=objc)
1211    pub static kMDItemAudioChannelCount: Option<&'static CFString>;
1212}
1213
1214extern "C" {
1215    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtempo?language=objc)
1216    pub static kMDItemTempo: Option<&'static CFString>;
1217}
1218
1219extern "C" {
1220    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemkeysignature?language=objc)
1221    pub static kMDItemKeySignature: Option<&'static CFString>;
1222}
1223
1224extern "C" {
1225    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtimesignature?language=objc)
1226    pub static kMDItemTimeSignature: Option<&'static CFString>;
1227}
1228
1229extern "C" {
1230    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudioencodingapplication?language=objc)
1231    pub static kMDItemAudioEncodingApplication: Option<&'static CFString>;
1232}
1233
1234extern "C" {
1235    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcomposer?language=objc)
1236    pub static kMDItemComposer: Option<&'static CFString>;
1237}
1238
1239extern "C" {
1240    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlyricist?language=objc)
1241    pub static kMDItemLyricist: Option<&'static CFString>;
1242}
1243
1244extern "C" {
1245    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudiotracknumber?language=objc)
1246    pub static kMDItemAudioTrackNumber: Option<&'static CFString>;
1247}
1248
1249extern "C" {
1250    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrecordingdate?language=objc)
1251    pub static kMDItemRecordingDate: Option<&'static CFString>;
1252}
1253
1254extern "C" {
1255    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmusicalgenre?language=objc)
1256    pub static kMDItemMusicalGenre: Option<&'static CFString>;
1257}
1258
1259extern "C" {
1260    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemisgeneralmidisequence?language=objc)
1261    pub static kMDItemIsGeneralMIDISequence: Option<&'static CFString>;
1262}
1263
1264extern "C" {
1265    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrecordingyear?language=objc)
1266    pub static kMDItemRecordingYear: Option<&'static CFString>;
1267}
1268
1269extern "C" {
1270    /// Used to indicate company/Organization that created the document.
1271    /// Type is a CFArray of CFStrings.
1272    ///
1273    ///
1274    /// Used to designate the languages of the intellectual content of the
1275    /// resource. Recommended best practice for the values of the Language
1276    /// element is defined by RFC 3066.
1277    /// Type is a CFArray of CFStrings.
1278    ///
1279    ///
1280    /// Used to provide a link to information about rights held in and
1281    /// over the resource. Typically a Rights element will contain a
1282    /// rights management statement for the resource, or reference a
1283    /// service providing such information. Rights information often
1284    /// encompasses Intellectual Property Rights (IPR), Copyright, and
1285    /// various Property Rights. If the rights element is absent, no
1286    /// assumptions can be made about the status of these and other rights
1287    /// with respect to the resource. Type is a CFString type.
1288    ///
1289    ///
1290    /// Used to designate the entity responsible for making the resource
1291    /// available. Examples of a Publisher include a person, an
1292    /// organization, or a service. Typically, the name of a Publisher
1293    /// should be used to indicate the entity. Type is a CFArray of CFStrings.
1294    ///
1295    ///
1296    /// Used to designate the entity responsible for making contributions
1297    /// to the content of the resource. Examples of a Contributor include
1298    /// a person, an organization or a service. Typically, the name of a
1299    /// Contributor should be used to indicate the entity. Type is a
1300    /// CFArray of CFStrings.
1301    ///
1302    ///
1303    /// Used to designate the extent or scope of the content of the
1304    /// resource. Coverage will typically include spatial location (a
1305    /// place name or geographic co-ordinates), temporal period (a period
1306    /// label, date, or date range) or jurisdiction (such as a named
1307    /// administrative entity). Recommended best practice is to select a
1308    /// value from a controlled vocabulary, and that, where appropriate,
1309    /// named places or time periods be used in preference to numeric
1310    /// identifiers such as sets of co-ordinates or date ranges. Type is a
1311    /// CFString.
1312    ///
1313    ///
1314    /// Subject of the this item. Type is a CFString.
1315    ///
1316    ///
1317    /// Theme of the this item. Type is a CFString.
1318    ///
1319    ///
1320    /// An account of the content of the resource. Description may include
1321    /// but is not limited to: an abstract, table of contents, reference
1322    /// to a graphical representation of content or a free-text account of
1323    /// the content. Type is a CFString.
1324    ///
1325    ///
1326    /// Used  to reference to the resource within a given
1327    /// context. Recommended best practice is to identify the resource by
1328    /// means of a string or number conforming to a formal identification
1329    /// system. Type is a CFString.
1330    ///
1331    ///
1332    /// A class of entity for whom the resource is intended or useful. A
1333    /// class of entity may be determined by the creator or the publisher
1334    /// or by a third party. Type is a  CFArray of CFString.
1335    ///
1336    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemorganizations?language=objc)
1337    pub static kMDItemOrganizations: Option<&'static CFString>;
1338}
1339
1340extern "C" {
1341    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlanguages?language=objc)
1342    pub static kMDItemLanguages: Option<&'static CFString>;
1343}
1344
1345extern "C" {
1346    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrights?language=objc)
1347    pub static kMDItemRights: Option<&'static CFString>;
1348}
1349
1350extern "C" {
1351    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempublishers?language=objc)
1352    pub static kMDItemPublishers: Option<&'static CFString>;
1353}
1354
1355extern "C" {
1356    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcontributors?language=objc)
1357    pub static kMDItemContributors: Option<&'static CFString>;
1358}
1359
1360extern "C" {
1361    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcoverage?language=objc)
1362    pub static kMDItemCoverage: Option<&'static CFString>;
1363}
1364
1365extern "C" {
1366    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemsubject?language=objc)
1367    pub static kMDItemSubject: Option<&'static CFString>;
1368}
1369
1370extern "C" {
1371    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemtheme?language=objc)
1372    pub static kMDItemTheme: Option<&'static CFString>;
1373}
1374
1375extern "C" {
1376    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdescription?language=objc)
1377    pub static kMDItemDescription: Option<&'static CFString>;
1378}
1379
1380extern "C" {
1381    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemidentifier?language=objc)
1382    pub static kMDItemIdentifier: Option<&'static CFString>;
1383}
1384
1385extern "C" {
1386    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemaudiences?language=objc)
1387    pub static kMDItemAudiences: Option<&'static CFString>;
1388}
1389
1390extern "C" {
1391    /// Number of pages in the item. Type is a CFNumberRef
1392    ///
1393    ///
1394    /// Width in points (72 points per inch) of the document page
1395    /// (first page only for PDF's - other pages within the PDF may
1396    /// not be the same width). Type is a CFNumber.
1397    ///
1398    ///
1399    /// Height in points (72 points per inch) of the document page
1400    /// (first page only for PDF's - other pages within the PDF may
1401    /// not be the same height). Type is a CFNumber.
1402    ///
1403    ///
1404    /// Security (encryption) method used in the file, for a PDF will be one of:
1405    /// "Password Encrypted" or "None". Type is a CFStrings.
1406    ///
1407    ///
1408    /// Application used to create the document content (e.g. "Word",
1409    /// "Framemaker", etc.). Type is a CFStrings.
1410    ///
1411    ///
1412    /// Software used to convert the original content into a PDF stream
1413    /// (e.g. "Distiller", etc.). Type is a Array of CFStrings.
1414    ///
1415    ///
1416    /// Date this item is due. Type is a CFDate.
1417    ///
1418    ///
1419    /// User rate of this item like iTunes. Type is a CFNumber
1420    ///
1421    ///
1422    /// Phone numbers for this item. Type is an Array of CFStrings.
1423    ///
1424    ///
1425    /// Email addresses for this item. Type is an Array of CFStrings.
1426    ///
1427    ///
1428    /// Instant message addresses for this item. Type is an Array of CFStrings.
1429    ///
1430    ///
1431    /// Kind that this item represents. Type is a CFString.
1432    ///
1433    ///
1434    /// This attribute indicates the recipients of this item. Type is a Array of CFStrings
1435    ///
1436    ///
1437    /// These are the finder comments for this item. Type is a CFString.
1438    ///
1439    ///
1440    /// Array of font names used in the item. Attribute would store the Fonts
1441    /// full name, the postscript name or the font family name based on whats available.
1442    /// Type is an Array of CFStrings.
1443    ///
1444    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemnumberofpages?language=objc)
1445    pub static kMDItemNumberOfPages: Option<&'static CFString>;
1446}
1447
1448extern "C" {
1449    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempagewidth?language=objc)
1450    pub static kMDItemPageWidth: Option<&'static CFString>;
1451}
1452
1453extern "C" {
1454    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditempageheight?language=objc)
1455    pub static kMDItemPageHeight: Option<&'static CFString>;
1456}
1457
1458extern "C" {
1459    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemsecuritymethod?language=objc)
1460    pub static kMDItemSecurityMethod: Option<&'static CFString>;
1461}
1462
1463extern "C" {
1464    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcreator?language=objc)
1465    pub static kMDItemCreator: Option<&'static CFString>;
1466}
1467
1468extern "C" {
1469    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemencodingapplications?language=objc)
1470    pub static kMDItemEncodingApplications: Option<&'static CFString>;
1471}
1472
1473extern "C" {
1474    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemduedate?language=objc)
1475    pub static kMDItemDueDate: Option<&'static CFString>;
1476}
1477
1478extern "C" {
1479    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemstarrating?language=objc)
1480    pub static kMDItemStarRating: Option<&'static CFString>;
1481}
1482
1483extern "C" {
1484    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemphonenumbers?language=objc)
1485    pub static kMDItemPhoneNumbers: Option<&'static CFString>;
1486}
1487
1488extern "C" {
1489    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditememailaddresses?language=objc)
1490    pub static kMDItemEmailAddresses: Option<&'static CFString>;
1491}
1492
1493extern "C" {
1494    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditeminstantmessageaddresses?language=objc)
1495    pub static kMDItemInstantMessageAddresses: Option<&'static CFString>;
1496}
1497
1498extern "C" {
1499    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemkind?language=objc)
1500    pub static kMDItemKind: Option<&'static CFString>;
1501}
1502
1503extern "C" {
1504    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrecipients?language=objc)
1505    pub static kMDItemRecipients: Option<&'static CFString>;
1506}
1507
1508extern "C" {
1509    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfindercomment?language=objc)
1510    pub static kMDItemFinderComment: Option<&'static CFString>;
1511}
1512
1513extern "C" {
1514    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemfonts?language=objc)
1515    pub static kMDItemFonts: Option<&'static CFString>;
1516}
1517
1518extern "C" {
1519    /// Meta data attribute that stores the root note or tonic for the
1520    /// loop, and does not include the scale type. The root key is
1521    /// represented as follows: "C" "C#/Db" "D" "D#/Eb" "E" "F"
1522    /// "F#/Gb" "G" "G#/Ab" "A" "A#/Bb" "B" "NoKey"
1523    ///
1524    ///
1525    /// Meta data attribute that stores key filtering information
1526    /// about a loop. Loops are matched against projects that often in
1527    /// a major or minor key. To assist users in identifying loops
1528    /// that will "fit" with their compositions, loops can be tagged
1529    /// with one of the following key filters: "AnyKey" "Minor"
1530    /// "Major" "NeitherKey" "BothKeys". AnyKey means that it fits
1531    /// with anything (whether in a major key, minor key or
1532    /// neither). Minor fits with compositions in a minor
1533    /// key. NeitherKey doesn't work well with compositions that are
1534    /// in major or minor key. BothKeys means it fits with major or
1535    /// minor key.
1536    ///
1537    ///
1538    /// Meta data attribute that stores how a file should be
1539    /// played. Tagged files can either be loops or non-loops (e.g., a
1540    /// cymbal crash). "Looping" indicates if the file should be
1541    /// treated as a loop. "Non-looping" indicates the file should not
1542    /// be treated as a loop.
1543    ///
1544    ///
1545    /// Meta data attribute that stores multiple pieces of descriptive
1546    /// information about a loop. Besides genre and instrument, files
1547    /// can contain descriptive information that help users in
1548    /// refining searches. A file can have multiple descriptors
1549    /// associated with them, though they come in pairs of antonyms
1550    /// (e.g., "Acoustic" and "Electric"). A file can have zero or
1551    /// more descriptors.
1552    ///
1553    ///
1554    /// Meta data attribute that stores the category of
1555    /// instrument. Files should have an instrument associated with
1556    /// them ("Other Instrument" is provided as a catch-all). For some
1557    /// categories, like "Keyboards" there are instrument names which
1558    /// provide a more detailed instrument definition (e.g., Piano,
1559    /// Organ, etc.)
1560    ///
1561    ///
1562    /// Meta data attribute that stores the name of instrument
1563    /// (relative to the instrument category) Files can have an
1564    /// instrument name associated with them if they have certain
1565    /// instrument categories (e.g., the category Percussion has
1566    /// multiple instruments, including Conga and Bongo).
1567    ///
1568    ///
1569    /// If this item is a bundle, then this is the CFBundleIdentifier
1570    ///
1571    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemappleloopsrootkey?language=objc)
1572    pub static kMDItemAppleLoopsRootKey: Option<&'static CFString>;
1573}
1574
1575extern "C" {
1576    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemappleloopskeyfiltertype?language=objc)
1577    pub static kMDItemAppleLoopsKeyFilterType: Option<&'static CFString>;
1578}
1579
1580extern "C" {
1581    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemappleloopsloopmode?language=objc)
1582    pub static kMDItemAppleLoopsLoopMode: Option<&'static CFString>;
1583}
1584
1585extern "C" {
1586    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemappleloopdescriptors?language=objc)
1587    pub static kMDItemAppleLoopDescriptors: Option<&'static CFString>;
1588}
1589
1590extern "C" {
1591    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmusicalinstrumentcategory?language=objc)
1592    pub static kMDItemMusicalInstrumentCategory: Option<&'static CFString>;
1593}
1594
1595extern "C" {
1596    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemmusicalinstrumentname?language=objc)
1597    pub static kMDItemMusicalInstrumentName: Option<&'static CFString>;
1598}
1599
1600extern "C" {
1601    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemcfbundleidentifier?language=objc)
1602    pub static kMDItemCFBundleIdentifier: Option<&'static CFString>;
1603}
1604
1605extern "C" {
1606    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemsupportfiletype?language=objc)
1607    #[deprecated = "No longer supported"]
1608    pub static kMDItemSupportFileType: Option<&'static CFString>;
1609}
1610
1611extern "C" {
1612    /// Information about the item
1613    ///
1614    ///
1615    /// Director of the movie
1616    ///
1617    ///
1618    /// Producer of the content
1619    ///
1620    ///
1621    /// Genre of the movie
1622    ///
1623    ///
1624    /// Performers in the movie
1625    ///
1626    ///
1627    /// Original format of the movie
1628    ///
1629    ///
1630    /// Original source of the movie
1631    ///
1632    ///
1633    /// This attribute indicates the author of the emails message addresses. (This is always
1634    /// the email address, and not the human readable version)
1635    ///
1636    ///
1637    /// This attribute indicates the recipients email addresses. (This is always the email
1638    /// address,  and not the human readable version).
1639    ///
1640    ///
1641    /// This attribute indicates the author addresses of the document.
1642    ///
1643    ///
1644    /// This attribute indicates the recipient addresses of the document.
1645    ///
1646    ///
1647    /// Url of the item
1648    ///
1649    ///
1650    /// This attribute indicates if the document is likely to be considered junk.
1651    ///
1652    ///
1653    /// Array of executables architectures the item contains.
1654    ///
1655    ///
1656    /// Indicates platform required to execute this application.
1657    ///
1658    ///
1659    /// Array of categories the item application is a member of.
1660    ///
1661    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditeminformation?language=objc)
1662    pub static kMDItemInformation: Option<&'static CFString>;
1663}
1664
1665extern "C" {
1666    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemdirector?language=objc)
1667    pub static kMDItemDirector: Option<&'static CFString>;
1668}
1669
1670extern "C" {
1671    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemproducer?language=objc)
1672    pub static kMDItemProducer: Option<&'static CFString>;
1673}
1674
1675extern "C" {
1676    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemgenre?language=objc)
1677    pub static kMDItemGenre: Option<&'static CFString>;
1678}
1679
1680extern "C" {
1681    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemperformers?language=objc)
1682    pub static kMDItemPerformers: Option<&'static CFString>;
1683}
1684
1685extern "C" {
1686    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemoriginalformat?language=objc)
1687    pub static kMDItemOriginalFormat: Option<&'static CFString>;
1688}
1689
1690extern "C" {
1691    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemoriginalsource?language=objc)
1692    pub static kMDItemOriginalSource: Option<&'static CFString>;
1693}
1694
1695extern "C" {
1696    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemauthoremailaddresses?language=objc)
1697    pub static kMDItemAuthorEmailAddresses: Option<&'static CFString>;
1698}
1699
1700extern "C" {
1701    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrecipientemailaddresses?language=objc)
1702    pub static kMDItemRecipientEmailAddresses: Option<&'static CFString>;
1703}
1704
1705extern "C" {
1706    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemauthoraddresses?language=objc)
1707    pub static kMDItemAuthorAddresses: Option<&'static CFString>;
1708}
1709
1710extern "C" {
1711    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemrecipientaddresses?language=objc)
1712    pub static kMDItemRecipientAddresses: Option<&'static CFString>;
1713}
1714
1715extern "C" {
1716    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemurl?language=objc)
1717    pub static kMDItemURL: Option<&'static CFString>;
1718}
1719
1720extern "C" {
1721    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlabelicon?language=objc)
1722    #[deprecated = "No longer supported"]
1723    pub static kMDItemLabelIcon: Option<&'static CFString>;
1724}
1725
1726extern "C" {
1727    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlabelid?language=objc)
1728    #[deprecated = "No longer supported"]
1729    pub static kMDItemLabelID: Option<&'static CFString>;
1730}
1731
1732extern "C" {
1733    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlabelkind?language=objc)
1734    #[deprecated = "No longer supported"]
1735    pub static kMDItemLabelKind: Option<&'static CFString>;
1736}
1737
1738extern "C" {
1739    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemlabeluuid?language=objc)
1740    #[deprecated = "No longer supported"]
1741    pub static kMDItemLabelUUID: Option<&'static CFString>;
1742}
1743
1744extern "C" {
1745    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemislikelyjunk?language=objc)
1746    pub static kMDItemIsLikelyJunk: Option<&'static CFString>;
1747}
1748
1749extern "C" {
1750    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexecutablearchitectures?language=objc)
1751    pub static kMDItemExecutableArchitectures: Option<&'static CFString>;
1752}
1753
1754extern "C" {
1755    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemexecutableplatform?language=objc)
1756    pub static kMDItemExecutablePlatform: Option<&'static CFString>;
1757}
1758
1759extern "C" {
1760    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemapplicationcategories?language=objc)
1761    pub static kMDItemApplicationCategories: Option<&'static CFString>;
1762}
1763
1764extern "C" {
1765    /// [Apple's documentation](https://developer.apple.com/documentation/coreservices/kmditemisapplicationmanaged?language=objc)
1766    pub static kMDItemIsApplicationManaged: Option<&'static CFString>;
1767}
1768
1769#[deprecated = "renamed to `MDItem::new`"]
1770#[inline]
1771pub unsafe extern "C-unwind" fn MDItemCreate(
1772    allocator: Option<&CFAllocator>,
1773    path: Option<&CFString>,
1774) -> Option<CFRetained<MDItem>> {
1775    extern "C-unwind" {
1776        fn MDItemCreate(
1777            allocator: Option<&CFAllocator>,
1778            path: Option<&CFString>,
1779        ) -> Option<NonNull<MDItem>>;
1780    }
1781    let ret = unsafe { MDItemCreate(allocator, path) };
1782    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1783}
1784
1785#[deprecated = "renamed to `MDItem::with_url`"]
1786#[inline]
1787pub unsafe extern "C-unwind" fn MDItemCreateWithURL(
1788    allocator: Option<&CFAllocator>,
1789    url: Option<&CFURL>,
1790) -> Option<CFRetained<MDItem>> {
1791    extern "C-unwind" {
1792        fn MDItemCreateWithURL(
1793            allocator: Option<&CFAllocator>,
1794            url: Option<&CFURL>,
1795        ) -> Option<NonNull<MDItem>>;
1796    }
1797    let ret = unsafe { MDItemCreateWithURL(allocator, url) };
1798    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1799}
1800
1801#[deprecated = "renamed to `MDItem::attribute`"]
1802#[inline]
1803pub unsafe extern "C-unwind" fn MDItemCopyAttribute(
1804    item: &MDItem,
1805    name: Option<&CFString>,
1806) -> Option<CFRetained<CFType>> {
1807    extern "C-unwind" {
1808        fn MDItemCopyAttribute(item: &MDItem, name: Option<&CFString>) -> Option<NonNull<CFType>>;
1809    }
1810    let ret = unsafe { MDItemCopyAttribute(item, name) };
1811    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1812}
1813
1814#[deprecated = "renamed to `MDItem::attributes`"]
1815#[inline]
1816pub unsafe extern "C-unwind" fn MDItemCopyAttributes(
1817    item: &MDItem,
1818    names: Option<&CFArray>,
1819) -> Option<CFRetained<CFDictionary>> {
1820    extern "C-unwind" {
1821        fn MDItemCopyAttributes(
1822            item: &MDItem,
1823            names: Option<&CFArray>,
1824        ) -> Option<NonNull<CFDictionary>>;
1825    }
1826    let ret = unsafe { MDItemCopyAttributes(item, names) };
1827    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1828}
1829
1830#[deprecated = "renamed to `MDItem::attribute_names`"]
1831#[inline]
1832pub unsafe extern "C-unwind" fn MDItemCopyAttributeNames(
1833    item: &MDItem,
1834) -> Option<CFRetained<CFArray>> {
1835    extern "C-unwind" {
1836        fn MDItemCopyAttributeNames(item: &MDItem) -> Option<NonNull<CFArray>>;
1837    }
1838    let ret = unsafe { MDItemCopyAttributeNames(item) };
1839    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1840}
1841
1842extern "C-unwind" {
1843    #[cfg(feature = "block2")]
1844    #[deprecated = "renamed to `MDItem::cache_file_descriptors`"]
1845    pub fn MDItemGetCacheFileDescriptors(
1846        items: Option<&CFArray>,
1847        completion_handler: Option<&block2::DynBlock<dyn Fn(*const CFArray)>>,
1848    );
1849}