// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. use std::os::raw::c_void; use crate::array::CFArrayRef; use crate::base::{ Boolean, CFAllocatorRef, CFIndex, CFOptionFlags, CFRange, CFTypeID, CFTypeRef, SInt32, }; use crate::data::CFDataRef; use crate::dictionary::CFDictionaryRef; use crate::error::CFErrorRef; use crate::string::{CFStringEncoding, CFStringRef}; #[repr(C)] pub struct __CFURL(c_void); pub type CFURLRef = *const __CFURL; pub type CFURLBookmarkCreationOptions = CFOptionFlags; pub type CFURLBookmarkResolutionOptions = CFOptionFlags; pub type CFURLBookmarkFileCreationOptions = CFOptionFlags; pub type CFURLPathStyle = CFIndex; /* typedef CF_ENUM(CFIndex, CFURLPathStyle) */ pub const kCFURLPOSIXPathStyle: CFURLPathStyle = 0; pub const kCFURLHFSPathStyle: CFURLPathStyle = 1; pub const kCFURLWindowsPathStyle: CFURLPathStyle = 2; /* Bookmark Data Creation Options */ pub static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions = (1u32 << 9) as usize; pub static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions = (1u32 << 10) as usize; #[cfg(target_os = "macos")] pub static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions = (1u32 << 11) as usize; #[cfg(target_os = "macos")] pub static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions = (1u32 << 12) as usize; pub static kCFURLBookmarkCreationWithoutImplicitSecurityScope: CFURLBookmarkCreationOptions = (1u32 << 29) as usize; pub static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions = (1u32 << 8) as usize; // deprecated /* The types of components in a URL. */ pub type CFURLComponentType = CFIndex; pub const kCFURLComponentScheme: CFIndex = 1; pub const kCFURLComponentNetLocation: CFIndex = 2; pub const kCFURLComponentPath: CFIndex = 3; pub const kCFURLComponentResourceSpecifier: CFIndex = 4; pub const kCFURLComponentUser: CFIndex = 5; pub const kCFURLComponentPassword: CFIndex = 6; pub const kCFURLComponentUserInfo: CFIndex = 7; pub const kCFURLComponentHost: CFIndex = 8; pub const kCFURLComponentPort: CFIndex = 9; pub const kCFURLComponentParameterString: CFIndex = 10; pub const kCFURLComponentQuery: CFIndex = 11; pub const kCFURLComponentFragment: CFIndex = 12; /* Bookmark Data Resolution Options */ pub const kCFURLBookmarkResolutionWithoutUIMask: CFURLBookmarkResolutionOptions = (1u32 << 8) as usize; pub const kCFURLBookmarkResolutionWithoutMountingMask: CFURLBookmarkResolutionOptions = (1u32 << 9) as usize; #[cfg(target_os = "macos")] pub const kCFURLBookmarkResolutionWithSecurityScope: CFURLBookmarkResolutionOptions = (1u32 << 10) as usize; //pub const kCFURLBookmarkResolutionWithoutImplicitStartAccessing: CFURLBookmarkResolutionOptions = ( 1u32 << 15 ) as usize; // macos(11.2)+ pub const kCFBookmarkResolutionWithoutUIMask: CFURLBookmarkResolutionOptions = (1u32 << 8) as usize; pub const kCFBookmarkResolutionWithoutMountingMask: CFURLBookmarkResolutionOptions = (1u32 << 9) as usize; extern "C" { /* * CFURL.h */ /* Common File System Resource Keys */ pub static kCFURLNameKey: CFStringRef; pub static kCFURLLocalizedNameKey: CFStringRef; pub static kCFURLIsRegularFileKey: CFStringRef; pub static kCFURLIsDirectoryKey: CFStringRef; pub static kCFURLIsSymbolicLinkKey: CFStringRef; pub static kCFURLIsVolumeKey: CFStringRef; pub static kCFURLIsPackageKey: CFStringRef; pub static kCFURLIsApplicationKey: CFStringRef; // pub static kCFURLApplicationIsScriptableKey: CFStringRef; //macos(10.11)+ pub static kCFURLIsSystemImmutableKey: CFStringRef; pub static kCFURLIsUserImmutableKey: CFStringRef; pub static kCFURLIsHiddenKey: CFStringRef; pub static kCFURLHasHiddenExtensionKey: CFStringRef; pub static kCFURLCreationDateKey: CFStringRef; pub static kCFURLContentAccessDateKey: CFStringRef; pub static kCFURLContentModificationDateKey: CFStringRef; pub static kCFURLAttributeModificationDateKey: CFStringRef; // pub static kCFURLFileIdentifierKey: CFStringRef; //macos(13.3)+ // pub static kCFURLFileContentIdentifierKey: CFStringRef; //macos(11.0)+ // pub static kCFURLMayShareFileContentKey: CFStringRef; //macos(11.0)+ // pub static kCFURLMayHaveExtendedAttributesKey: CFStringRef; //macos(11.0)+ // pub static kCFURLIsPurgeableKey: CFStringRef; //macos(11.0)+ // pub static kCFURLIsSparseKey: CFStringRef; //macos(11.0)+ pub static kCFURLLinkCountKey: CFStringRef; pub static kCFURLParentDirectoryURLKey: CFStringRef; pub static kCFURLVolumeURLKey: CFStringRef; pub static kCFURLTypeIdentifierKey: CFStringRef; //deprecated pub static kCFURLLocalizedTypeDescriptionKey: CFStringRef; pub static kCFURLLabelNumberKey: CFStringRef; pub static kCFURLLabelColorKey: CFStringRef; //deprecated pub static kCFURLLocalizedLabelKey: CFStringRef; pub static kCFURLEffectiveIconKey: CFStringRef; //deprecated pub static kCFURLCustomIconKey: CFStringRef; //deprecated pub static kCFURLFileResourceIdentifierKey: CFStringRef; pub static kCFURLVolumeIdentifierKey: CFStringRef; pub static kCFURLPreferredIOBlockSizeKey: CFStringRef; pub static kCFURLIsReadableKey: CFStringRef; pub static kCFURLIsWritableKey: CFStringRef; pub static kCFURLIsExecutableKey: CFStringRef; pub static kCFURLFileSecurityKey: CFStringRef; #[cfg(feature = "mac_os_10_8_features")] #[cfg_attr(feature = "mac_os_10_7_support", linkage = "extern_weak")] pub static kCFURLIsExcludedFromBackupKey: CFStringRef; // pub static kCFURLTagNamesKey: CFStringRef; //macos(10.9)+ #[cfg(feature = "mac_os_10_8_features")] #[cfg_attr(feature = "mac_os_10_7_support", linkage = "extern_weak")] pub static kCFURLPathKey: CFStringRef; // macos(10.8)+ pub static kCFURLCanonicalPathKey: CFStringRef; // macos(10.12)+ pub static kCFURLIsMountTriggerKey: CFStringRef; // pub static kCFURLGenerationIdentifierKey: CFStringRef; // macos(10.10)+ // pub static kCFURLDocumentIdentifierKey: CFStringRef; // macos(10.10)+ // pub static kCFURLAddedToDirectoryDateKey: CFStringRef; // macos(10.10)+ // pub static kCFURLQuarantinePropertiesKey: CFStringRef; // macos(10.10)+ pub static kCFURLFileResourceTypeKey: CFStringRef; /* File Resource Types. The file system object type values returned for the kCFURLFileResourceTypeKey */ pub static kCFURLFileResourceTypeNamedPipe: CFStringRef; pub static kCFURLFileResourceTypeCharacterSpecial: CFStringRef; pub static kCFURLFileResourceTypeDirectory: CFStringRef; pub static kCFURLFileResourceTypeBlockSpecial: CFStringRef; pub static kCFURLFileResourceTypeRegular: CFStringRef; pub static kCFURLFileResourceTypeSymbolicLink: CFStringRef; pub static kCFURLFileResourceTypeSocket: CFStringRef; pub static kCFURLFileResourceTypeUnknown: CFStringRef; /* File Property Keys */ pub static kCFURLFileSizeKey: CFStringRef; pub static kCFURLFileAllocatedSizeKey: CFStringRef; pub static kCFURLTotalFileSizeKey: CFStringRef; pub static kCFURLTotalFileAllocatedSizeKey: CFStringRef; pub static kCFURLIsAliasFileKey: CFStringRef; // pub static kCFURLFileProtectionKey: CFStringRef; // ios(9.0)+ /* The protection level values returned for the kCFURLFileProtectionKey */ // pub static kCFURLFileProtectionNone: CFStringRef; // ios(9.0)+ // pub static kCFURLFileProtectionComplete: CFStringRef; // ios(9.0)+ // pub static kCFURLFileProtectionCompleteUnlessOpen: CFStringRef; // ios(9.0)+ // pub static kCFURLFileProtectionCompleteUntilFirstUserAuthentication: CFStringRef; // ios(9.0)+ /* Volume Property Keys */ pub static kCFURLVolumeLocalizedFormatDescriptionKey: CFStringRef; pub static kCFURLVolumeTotalCapacityKey: CFStringRef; pub static kCFURLVolumeAvailableCapacityKey: CFStringRef; //pub static kCFURLVolumeAvailableCapacityForImportantUsageKey: CFStringRef; //macos(10.13)+ //pub static kCFURLVolumeAvailableCapacityForOpportunisticUsageKey: CFStringRef; //macos(10.13)+ pub static kCFURLVolumeResourceCountKey: CFStringRef; pub static kCFURLVolumeSupportsPersistentIDsKey: CFStringRef; pub static kCFURLVolumeSupportsSymbolicLinksKey: CFStringRef; pub static kCFURLVolumeSupportsHardLinksKey: CFStringRef; pub static kCFURLVolumeSupportsJournalingKey: CFStringRef; pub static kCFURLVolumeIsJournalingKey: CFStringRef; pub static kCFURLVolumeSupportsSparseFilesKey: CFStringRef; pub static kCFURLVolumeSupportsZeroRunsKey: CFStringRef; pub static kCFURLVolumeSupportsCaseSensitiveNamesKey: CFStringRef; pub static kCFURLVolumeSupportsCasePreservedNamesKey: CFStringRef; pub static kCFURLVolumeSupportsRootDirectoryDatesKey: CFStringRef; pub static kCFURLVolumeSupportsVolumeSizesKey: CFStringRef; pub static kCFURLVolumeSupportsRenamingKey: CFStringRef; pub static kCFURLVolumeSupportsAdvisoryFileLockingKey: CFStringRef; pub static kCFURLVolumeSupportsExtendedSecurityKey: CFStringRef; pub static kCFURLVolumeIsBrowsableKey: CFStringRef; pub static kCFURLVolumeMaximumFileSizeKey: CFStringRef; pub static kCFURLVolumeIsEjectableKey: CFStringRef; pub static kCFURLVolumeIsRemovableKey: CFStringRef; pub static kCFURLVolumeIsInternalKey: CFStringRef; pub static kCFURLVolumeIsAutomountedKey: CFStringRef; pub static kCFURLVolumeIsLocalKey: CFStringRef; pub static kCFURLVolumeIsReadOnlyKey: CFStringRef; pub static kCFURLVolumeCreationDateKey: CFStringRef; pub static kCFURLVolumeURLForRemountingKey: CFStringRef; pub static kCFURLVolumeUUIDStringKey: CFStringRef; pub static kCFURLVolumeNameKey: CFStringRef; pub static kCFURLVolumeLocalizedNameKey: CFStringRef; // pub static kCFURLVolumeIsEncryptedKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeIsRootFileSystemKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeSupportsCompressionKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeSupportsFileCloningKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeSupportsSwapRenamingKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeSupportsExclusiveRenamingKey: CFStringRef; //macos(10.12)+ // pub static kCFURLVolumeSupportsImmutableFilesKey: CFStringRef; //macos(10.13)+ // pub static kCFURLVolumeSupportsAccessPermissionsKey: CFStringRef; //macos(10.13)+ // pub static kCFURLVolumeSupportsFileProtectionKey: CFStringRef; //macos(11.0)+ // pub static kCFURLVolumeTypeNameKey: CFStringRef; //macos(13.3)+ // pub static kCFURLVolumeSubtypeKey: CFStringRef; //macos(13.3)+ // pub static kCFURLVolumeMountFromLocationKey: CFStringRef; //macos(13.3)+ /* iCloud Constants */ pub static kCFURLIsUbiquitousItemKey: CFStringRef; pub static kCFURLUbiquitousItemHasUnresolvedConflictsKey: CFStringRef; pub static kCFURLUbiquitousItemIsDownloadedKey: CFStringRef; // deprecated pub static kCFURLUbiquitousItemIsDownloadingKey: CFStringRef; pub static kCFURLUbiquitousItemIsUploadedKey: CFStringRef; pub static kCFURLUbiquitousItemIsUploadingKey: CFStringRef; pub static kCFURLUbiquitousItemPercentDownloadedKey: CFStringRef; // deprecated pub static kCFURLUbiquitousItemPercentUploadedKey: CFStringRef; // deprecated // pub static kCFURLUbiquitousItemDownloadingStatusKey: CFStringRef; // macos(10.9)+ // pub static kCFURLUbiquitousItemDownloadingErrorKey: CFStringRef; // macos(10.9)+ // pub static kCFURLUbiquitousItemUploadingErrorKey: CFStringRef; // macos(10.9)+ // pub static kCFURLUbiquitousItemIsExcludedFromSyncKey: CFStringRef; // macos(11.3)+ /* The values returned for kCFURLUbiquitousItemDownloadingStatusKey */ // pub static kCFURLUbiquitousItemDownloadingStatusNotDownloaded: CFStringRef; // macos(10.9)+ // pub static kCFURLUbiquitousItemDownloadingStatusDownloaded: CFStringRef; // macos(10.9)+ // pub static kCFURLUbiquitousItemDownloadingStatusCurrent: CFStringRef; // macos(10.9)+ /* CFError userInfo Dictionary Keys */ pub static kCFURLKeysOfUnsetValuesKey: CFStringRef; /* Creating a CFURL */ pub fn CFURLCopyAbsoluteURL(anURL: CFURLRef) -> CFURLRef; pub fn CFURLCreateAbsoluteURLWithBytes( allocator: CFAllocatorRef, relativeURLBytes: *const u8, length: CFIndex, encoding: CFStringEncoding, baseURL: CFURLRef, useCompatibilityMode: Boolean, ) -> CFURLRef; pub fn CFURLCreateByResolvingBookmarkData( allocator: CFAllocatorRef, bookmark: CFDataRef, options: CFURLBookmarkResolutionOptions, relativeToURL: CFURLRef, resourcePropertiesToInclude: CFArrayRef, isStale: *mut Boolean, error: *mut CFErrorRef, ) -> CFURLRef; pub fn CFURLCreateCopyAppendingPathComponent( allocator: CFAllocatorRef, url: CFURLRef, pathComponent: CFStringRef, isDirectory: Boolean, ) -> CFURLRef; pub fn CFURLCreateCopyAppendingPathExtension( allocator: CFAllocatorRef, url: CFURLRef, extension: CFStringRef, ) -> CFURLRef; pub fn CFURLCreateCopyDeletingLastPathComponent( allocator: CFAllocatorRef, url: CFURLRef, ) -> CFURLRef; pub fn CFURLCreateCopyDeletingPathExtension( allocator: CFAllocatorRef, url: CFURLRef, ) -> CFURLRef; pub fn CFURLCreateFilePathURL( allocator: CFAllocatorRef, url: CFURLRef, error: *mut CFErrorRef, ) -> CFURLRef; pub fn CFURLCreateFileReferenceURL( allocator: CFAllocatorRef, url: CFURLRef, error: *mut CFErrorRef, ) -> CFURLRef; pub fn CFURLCreateFromFileSystemRepresentation( allocator: CFAllocatorRef, buffer: *const u8, bufLen: CFIndex, isDirectory: Boolean, ) -> CFURLRef; pub fn CFURLCreateFromFileSystemRepresentationRelativeToBase( allocator: CFAllocatorRef, buffer: *const u8, bufLen: CFIndex, isDirectory: Boolean, baseURL: CFURLRef, ) -> CFURLRef; //pub fn CFURLCreateFromFSRef(allocator: CFAllocatorRef, fsRef: *const FSRef) -> CFURLRef pub fn CFURLCreateWithBytes( allocator: CFAllocatorRef, URLBytes: *const u8, length: CFIndex, encoding: CFStringEncoding, baseURL: CFURLRef, ) -> CFURLRef; pub fn CFURLCreateWithFileSystemPath( allocator: CFAllocatorRef, filePath: CFStringRef, pathStyle: CFURLPathStyle, isDirectory: Boolean, ) -> CFURLRef; pub fn CFURLCreateWithFileSystemPathRelativeToBase( allocator: CFAllocatorRef, filePath: CFStringRef, pathStyle: CFURLPathStyle, isDirectory: Boolean, baseURL: CFURLRef, ) -> CFURLRef; pub fn CFURLCreateWithString( allocator: CFAllocatorRef, URLString: CFStringRef, baseURL: CFURLRef, ) -> CFURLRef; /* Accessing the Parts of a URL */ pub fn CFURLCanBeDecomposed(anURL: CFURLRef) -> Boolean; pub fn CFURLCopyFileSystemPath(anURL: CFURLRef, pathStyle: CFURLPathStyle) -> CFStringRef; pub fn CFURLCopyFragment(anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef) -> CFStringRef; pub fn CFURLCopyHostName(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyLastPathComponent(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyNetLocation(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyParameterString( anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef, ) -> CFStringRef; // deprecated pub fn CFURLCopyPassword(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyPath(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyPathExtension(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyQueryString( anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef, ) -> CFStringRef; pub fn CFURLCopyResourceSpecifier(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyScheme(anURL: CFURLRef) -> CFStringRef; pub fn CFURLCopyStrictPath(anURL: CFURLRef, isAbsolute: *mut Boolean) -> CFStringRef; pub fn CFURLCopyUserName(anURL: CFURLRef) -> CFStringRef; pub fn CFURLGetPortNumber(anURL: CFURLRef) -> SInt32; pub fn CFURLHasDirectoryPath(anURL: CFURLRef) -> Boolean; /* Converting URLs to Other Representations */ pub fn CFURLCreateData( allocator: CFAllocatorRef, url: CFURLRef, encoding: CFStringEncoding, escapeWhitespace: Boolean, ) -> CFDataRef; pub fn CFURLCreateStringByAddingPercentEscapes( allocator: CFAllocatorRef, originalString: CFStringRef, charactersToLeaveUnescaped: CFStringRef, legalURLCharactersToBeEscaped: CFStringRef, encoding: CFStringEncoding, ) -> CFStringRef; // API_DEPRECATED("Use [NSString stringByAddingPercentEncodingWithAllowedCharacters:] instead, which always uses the recommended UTF-8 encoding, and which encodes for a specific URL component or subcomponent (since each URL component or subcomponent has different rules for what characters are valid).", macos(10.0,10.11), ios(2.0,9.0), watchos(2.0,2.0), tvos(9.0,9.0)); pub fn CFURLCreateStringByReplacingPercentEscapes( allocator: CFAllocatorRef, originalString: CFStringRef, charactersToLeaveEscaped: CFStringRef, ) -> CFStringRef; pub fn CFURLCreateStringByReplacingPercentEscapesUsingEncoding( allocator: CFAllocatorRef, origString: CFStringRef, charsToLeaveEscaped: CFStringRef, encoding: CFStringEncoding, ) -> CFStringRef; // deprecated pub fn CFURLGetFileSystemRepresentation( anURL: CFURLRef, resolveAgainstBase: Boolean, buffer: *mut u8, maxBufLen: CFIndex, ) -> Boolean; //pub fn CFURLIsFileReferenceURL(url: CFURLRef) -> Boolean; // macos(10.9)+ //pub fn CFURLGetFSRef(url: CFURLRef, fsRef: *mut FSRef) -> Boolean; pub fn CFURLGetString(anURL: CFURLRef) -> CFStringRef; /* Getting URL Properties */ pub fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef; pub fn CFURLGetBytes(anURL: CFURLRef, buffer: *mut u8, bufferLength: CFIndex) -> CFIndex; pub fn CFURLGetByteRangeForComponent( url: CFURLRef, component: CFURLComponentType, rangeIncludingSeparators: *mut CFRange, ) -> CFRange; pub fn CFURLGetTypeID() -> CFTypeID; pub fn CFURLResourceIsReachable(url: CFURLRef, error: *mut CFErrorRef) -> Boolean; /* Getting and Setting File System Resource Properties */ pub fn CFURLClearResourcePropertyCache(url: CFURLRef); pub fn CFURLClearResourcePropertyCacheForKey(url: CFURLRef, key: CFStringRef); pub fn CFURLCopyResourcePropertiesForKeys( url: CFURLRef, keys: CFArrayRef, error: *mut CFErrorRef, ) -> CFDictionaryRef; //pub fn CFURLCopyResourcePropertyForKey(url: CFURLRef, key: CFStringRef, propertyValueTypeRefPtr: *mut c_void, error: *mut CFErrorRef) -> Boolean pub fn CFURLCreateResourcePropertiesForKeysFromBookmarkData( allocator: CFAllocatorRef, resourcePropertiesToReturn: CFArrayRef, bookmark: CFDataRef, ) -> CFDictionaryRef; pub fn CFURLCreateResourcePropertyForKeyFromBookmarkData( allocator: CFAllocatorRef, resourcePropertyKey: CFStringRef, bookmark: CFDataRef, ) -> CFTypeRef; pub fn CFURLSetResourcePropertiesForKeys( url: CFURLRef, keyedPropertyValues: CFDictionaryRef, error: *mut CFErrorRef, ) -> Boolean; pub fn CFURLSetResourcePropertyForKey( url: CFURLRef, key: CFStringRef, value: CFTypeRef, error: *mut CFErrorRef, ) -> Boolean; pub fn CFURLSetTemporaryResourcePropertyForKey( url: CFURLRef, key: CFStringRef, propertyValue: CFTypeRef, ); /* Working with Bookmark Data */ pub fn CFURLCreateBookmarkData( allocator: CFAllocatorRef, url: CFURLRef, options: CFURLBookmarkCreationOptions, resourcePropertiesToInclude: CFArrayRef, relativeToURL: CFURLRef, error: *mut CFErrorRef, ) -> CFDataRef; #[cfg(target_os = "macos")] pub fn CFURLCreateBookmarkDataFromAliasRecord( allocator: CFAllocatorRef, aliasRecordDataRef: CFDataRef, ) -> CFDataRef; // deprecated pub fn CFURLCreateBookmarkDataFromFile( allocator: CFAllocatorRef, fileURL: CFURLRef, errorRef: *mut CFErrorRef, ) -> CFDataRef; pub fn CFURLWriteBookmarkDataToFile( bookmarkRef: CFDataRef, fileURL: CFURLRef, options: CFURLBookmarkFileCreationOptions, errorRef: *mut CFErrorRef, ) -> Boolean; pub fn CFURLStartAccessingSecurityScopedResource(url: CFURLRef) -> Boolean; pub fn CFURLStopAccessingSecurityScopedResource(url: CFURLRef); } #[test] #[cfg(feature = "mac_os_10_8_features")] fn can_see_excluded_from_backup_key() { let _ = unsafe { kCFURLIsExcludedFromBackupKey }; }