aboutsummaryrefslogtreecommitdiff
path: root/core/sys/darwin/Foundation/NSError.odin
diff options
context:
space:
mode:
Diffstat (limited to 'core/sys/darwin/Foundation/NSError.odin')
-rw-r--r--core/sys/darwin/Foundation/NSError.odin88
1 files changed, 88 insertions, 0 deletions
diff --git a/core/sys/darwin/Foundation/NSError.odin b/core/sys/darwin/Foundation/NSError.odin
new file mode 100644
index 000000000..1657befe2
--- /dev/null
+++ b/core/sys/darwin/Foundation/NSError.odin
@@ -0,0 +1,88 @@
+package objc_Foundation
+
+foreign import "system:Foundation.framework"
+
+ErrorDomain :: ^String
+
+foreign Foundation {
+ @(linkage="weak") CocoaErrorDomain: ErrorDomain
+ @(linkage="weak") POSIXErrorDomain: ErrorDomain
+ @(linkage="weak") OSStatusErrorDomain: ErrorDomain
+ @(linkage="weak") MachErrorDomain: ErrorDomain
+}
+
+ErrorUserInfoKey :: ^String
+
+foreign Foundation {
+ @(linkage="weak") UnderlyingErrorKey: ErrorUserInfoKey
+ @(linkage="weak") LocalizedDescriptionKey: ErrorUserInfoKey
+ @(linkage="weak") LocalizedFailureReasonErrorKey: ErrorUserInfoKey
+ @(linkage="weak") LocalizedRecoverySuggestionErrorKey: ErrorUserInfoKey
+ @(linkage="weak") LocalizedRecoveryOptionsErrorKey: ErrorUserInfoKey
+ @(linkage="weak") RecoveryAttempterErrorKey: ErrorUserInfoKey
+ @(linkage="weak") HelpAnchorErrorKey: ErrorUserInfoKey
+ @(linkage="weak") DebugDescriptionErrorKey: ErrorUserInfoKey
+ @(linkage="weak") LocalizedFailureErrorKey: ErrorUserInfoKey
+ @(linkage="weak") StringEncodingErrorKey: ErrorUserInfoKey
+ @(linkage="weak") URLErrorKey: ErrorUserInfoKey
+ @(linkage="weak") FilePathErrorKey: ErrorUserInfoKey
+}
+
+@(objc_class="NSError")
+Error :: struct { using _: Copying(Error) }
+
+
+@(objc_type=Error, objc_name="alloc", objc_is_class_method=true)
+Error_alloc :: proc "c" () -> ^Error {
+ return msgSend(^Error, Error, "alloc")
+}
+
+@(objc_type=Error, objc_name="init")
+Error_init :: proc "c" (self: ^Error) -> ^Error {
+ return msgSend(^Error, self, "init")
+}
+
+@(objc_type=Error, objc_name="errorWithDomain", objc_is_class_method=true)
+Error_errorWithDomain :: proc "c" (domain: ErrorDomain, code: Integer, userInfo: ^Dictionary) -> ^Error {
+ return msgSend(^Error, Error, "errorWithDomain:code:userInfo:", domain, code, userInfo)
+}
+
+@(objc_type=Error, objc_name="initWithDomain")
+Error_initWithDomain :: proc "c" (self: ^Error, domain: ErrorDomain, code: Integer, userInfo: ^Dictionary) -> ^Error {
+ return msgSend(^Error, self, "initWithDomain:code:userInfo:", domain, code, userInfo)
+}
+
+@(objc_type=Error, objc_name="code")
+Error_code :: proc "c" (self: ^Error) -> Integer {
+ return msgSend(Integer, self, "code")
+}
+
+@(objc_type=Error, objc_name="domain")
+Error_domain :: proc "c" (self: ^Error) -> ErrorDomain {
+ return msgSend(ErrorDomain, self, "domain")
+}
+
+@(objc_type=Error, objc_name="userInfo")
+Error_userInfo :: proc "c" (self: ^Error) -> ^Dictionary {
+ return msgSend(^Dictionary, self, "userInfo")
+}
+
+@(objc_type=Error, objc_name="localizedDescription")
+Error_localizedDescription :: proc "c" (self: ^Error) -> ^String {
+ return msgSend(^String, self, "localizedDescription")
+}
+
+@(objc_type=Error, objc_name="localizedRecoveryOptions")
+Error_localizedRecoveryOptions :: proc "c" (self: ^Error) -> (options: ^Array) {
+ return msgSend(type_of(options), self, "localizedRecoveryOptions")
+}
+
+@(objc_type=Error, objc_name="localizedRecoverySuggestion")
+Error_localizedRecoverySuggestion :: proc "c" (self: ^Error) -> ^String {
+ return msgSend(^String, self, "localizedRecoverySuggestion")
+}
+
+@(objc_type=Error, objc_name="localizedFailureReason")
+Error_localizedFailureReason :: proc "c" (self: ^Error) -> ^String {
+ return msgSend(^String, self, "localizedFailureReason")
+} \ No newline at end of file