static Error CodeForLastError()

in Firestore/core/src/util/status_win.cc [32:89]


static Error CodeForLastError(DWORD error) {
  switch (error) {
    case ERROR_SUCCESS:
      return Error::kErrorOk;

      // return Error::kErrorInternal;

    case ERROR_INVALID_FUNCTION:
    case ERROR_INVALID_HANDLE:
    case ERROR_INVALID_NAME:
      return Error::kErrorInvalidArgument;

      // return Error::kErrorDeadlineExceeded;

    case ERROR_FILE_NOT_FOUND:
    case ERROR_PATH_NOT_FOUND:
    case ERROR_INVALID_DRIVE:
    case ERROR_BAD_NETPATH:
    case ERROR_DEV_NOT_EXIST:
      return Error::kErrorNotFound;

    case ERROR_FILE_EXISTS:
    case ERROR_ALREADY_EXISTS:
      return Error::kErrorAlreadyExists;

    case ERROR_ACCESS_DENIED:
    case ERROR_INVALID_ACCESS:
    case ERROR_SHARING_VIOLATION:
    case ERROR_WRITE_PROTECT:
    case ERROR_LOCK_VIOLATION:
      return Error::kErrorPermissionDenied;

      // return Error::kErrorFailedPrecondition;

    case ERROR_TOO_MANY_OPEN_FILES:
    case ERROR_NOT_ENOUGH_MEMORY:
    case ERROR_OUTOFMEMORY:
    case ERROR_NO_MORE_FILES:
    case ERROR_DISK_FULL:
    case ERROR_HANDLE_DISK_FULL:
      return Error::kErrorResourceExhausted;

      // return Error::kErrorOutOfRange;

    case ERROR_CALL_NOT_IMPLEMENTED:
      return Error::kErrorUnimplemented;

    case ERROR_NOT_READY:
      return Error::kErrorUnavailable;

      // return Error::kErrorAborted;

      // return Error::kErrorCancelled;

    default:
      return Error::kErrorUnknown;
  }
}