ohos_fileuri_binding/
error.rs1use ohos_fileuri_sys::*;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum FileUriError {
6 PermissionError,
8 InvalidParameter,
10 DeviceNotSupported,
12 OperationNotPermitted,
14 NoSuchFileOrDirectory,
16 OutOfMemory,
18 Unknown,
20 NullByteError,
22 ConversionError,
24}
25
26impl std::fmt::Display for FileUriError {
27 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
28 match self {
29 FileUriError::PermissionError => write!(f, "Permission verification failed"),
30 FileUriError::InvalidParameter => write!(f, "Invalid input parameter"),
31 FileUriError::DeviceNotSupported => write!(f, "Device not supported"),
32 FileUriError::OperationNotPermitted => write!(f, "Operation not permitted"),
33 FileUriError::NoSuchFileOrDirectory => write!(f, "No such file or directory"),
34 FileUriError::OutOfMemory => write!(f, "Out of memory"),
35 FileUriError::Unknown => write!(f, "Unknown error"),
36 FileUriError::NullByteError => write!(f, "String contains null byte"),
37 FileUriError::ConversionError => write!(f, "Failed to convert result from C"),
38 }
39 }
40}
41
42impl std::error::Error for FileUriError {}
43
44#[allow(non_upper_case_globals)]
46pub(crate) fn error_from_code(code: FileManagement_ErrCode) -> FileUriError {
47 match code {
48 FileManagement_ErrCode_ERR_PERMISSION_ERROR => FileUriError::PermissionError,
49 FileManagement_ErrCode_ERR_INVALID_PARAMETER => FileUriError::InvalidParameter,
50 FileManagement_ErrCode_ERR_DEVICE_NOT_SUPPORTED => FileUriError::DeviceNotSupported,
51 FileManagement_ErrCode_ERR_EPERM => FileUriError::OperationNotPermitted,
52 FileManagement_ErrCode_ERR_ENOENT => FileUriError::NoSuchFileOrDirectory,
53 FileManagement_ErrCode_ERR_ENOMEM => FileUriError::OutOfMemory,
54 _ => FileUriError::Unknown,
55 }
56}