use core::ptr::NonNull;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use crate::*;
extern "C-unwind" {
#[cfg(all(feature = "JSBase", feature = "objc2-core-foundation"))]
pub fn JSStringCreateWithCFString(string: &CFString) -> JSStringRef;
}
#[cfg(all(feature = "JSBase", feature = "objc2-core-foundation"))]
#[inline]
pub unsafe extern "C-unwind" fn JSStringCopyCFString(
alloc: Option<&CFAllocator>,
string: JSStringRef,
) -> Option<CFRetained<CFString>> {
extern "C-unwind" {
fn JSStringCopyCFString(
alloc: Option<&CFAllocator>,
string: JSStringRef,
) -> Option<NonNull<CFString>>;
}
let ret = unsafe { JSStringCopyCFString(alloc, string) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}