1 // Copyright 2023-present 650 Industries. All rights reserved.
2 
3 import ExpoModulesCore
4 
5 final class FileNotExistsException: GenericException<String> {
6   override var reason: String {
7     "File '\(param)' does not exist"
8   }
9 }
10 
11 final class DirectoryNotExistsException: GenericException<String> {
12   override var reason: String {
13     "Directory '\(param)' does not exist"
14   }
15 }
16 
17 final class FileNotReadableException: GenericException<String> {
18   override var reason: String {
19     "File '\(param)' is not readable"
20   }
21 }
22 
23 final class FileNotWritableException: GenericException<String> {
24   override var reason: String {
25     "File '\(param)' is not writable"
26   }
27 }
28 
29 final class FileWriteFailedException: GenericException<String> {
30   override var reason: String {
31     "Writing to '\(param)' file has failed"
32   }
33 }
34 
35 final class FileCannotDeleteException: GenericException<String> {
36   override var reason: String {
37     "File '\(param)' could not be deleted"
38   }
39 }
40 
41 final class InvalidFileUrlException: GenericException<URL> {
42   override var reason: String {
43     "'\(param.absoluteString)' is not a file URL"
44   }
45 }
46 
47 final class UnsupportedSchemeException: GenericException<String?> {
48   override var reason: String {
49     "Unsupported URI scheme: '\(String(describing: param))'"
50   }
51 }
52 
53 final class HeaderEncodingFailedException: GenericException<String> {
54   override var reason: String {
55     "Unable to encode headers for request '\(param)' to UTF8"
56   }
57 }
58 
59 final class DownloadTaskNotFoundException: GenericException<String> {
60   override var reason: String {
61     "Cannot find a download task with id: '\(param)'"
62   }
63 }
64 
65 final class CannotDetermineDiskCapacity: Exception {
66   override var reason: String {
67     "Unable to determine free disk storage capacity"
68   }
69 }
70