use objc2::AnyThread;
use objc2::rc::Retained;
use objc2_foundation::{NSError, NSString, NSURL};
use crate::error::FrameworkError;
use crate::KasouError;
pub(crate) fn path_to_nsurl(path: &std::path::Path) -> Result<Retained<NSURL>, KasouError> {
let path_str = path.to_str().ok_or_else(|| {
KasouError::InvalidConfig(format!("path is not valid UTF-8: {}", path.display()))
})?;
let ns_path = NSString::from_str(path_str);
Ok(NSURL::initFileURLWithPath(NSURL::alloc(), &ns_path))
}
#[must_use]
pub(crate) fn ns_error_chain(error: &NSError) -> FrameworkError {
FrameworkError::from_ns_error(error)
}