errors_posix.odin 612 B

1234567891011121314151617181920212223242526272829303132
  1. //+private
  2. //+build darwin, netbsd, freebsd, openbsd
  3. package os2
  4. import "core:sys/posix"
  5. _Platform_Error :: posix.Errno
  6. _error_string :: proc(errno: i32) -> string {
  7. return string(posix.strerror(posix.Errno(errno)))
  8. }
  9. _get_platform_error :: proc() -> Error {
  10. #partial switch errno := posix.errno(); errno {
  11. case .EPERM:
  12. return .Permission_Denied
  13. case .EEXIST:
  14. return .Exist
  15. case .ENOENT:
  16. return .Not_Exist
  17. case .ETIMEDOUT:
  18. return .Timeout
  19. case .EPIPE:
  20. return .Broken_Pipe
  21. case .EBADF:
  22. return .Invalid_File
  23. case .ENOMEM:
  24. return .Out_Of_Memory
  25. case:
  26. return Platform_Error(errno)
  27. }
  28. }