| // Copyright 2025 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module mojo_base.mojom; |
| |
| // A copy of absl's Status Code. It is copied here to prevent infecting |
| // users with absl where Errors are used. kOk is intentionally omitted, |
| // because it should never be used. |
| // For additional clarity around how each code should be used, please |
| // refer to: https://abseil.io/docs/cpp/guides/status-codes |
| enum Code { |
| // The request was cancelled, typically by the caller. |
| kCancelled = 1, |
| // There is no way to determine a more specific error code. |
| kUnknown = 2, |
| // The request parameters would never work. |
| kInvalidArgument = 3, |
| // The operation did not complete within the specified deadline. |
| kDeadlineExceeded = 4, |
| // The requested entity does not exist. |
| kNotFound = 5, |
| // The entity being created already exists. |
| kAlreadyExists = 6, |
| // The caller does not have permission to execute the operation. |
| kPermissionDenied = 7, |
| // Some infrastructure resource is exhausted (quota, server capacity, etc). |
| kResourceExhausted = 8, |
| // The system is not in the required state for the operation. |
| kFailedPrecondition = 9, |
| // The operation was aborted, typically due to a concurrency issue like |
| // sequencer check failures, transaction aborts, etc. |
| kAborted = 10, |
| // The client has iterated too far, and should stop. |
| kOutOfRange = 11, |
| // There is no implementation for the requested operation. |
| kUnimplemented = 12, |
| // A serious internal invariant is broken (i.e. worthy of a bug or |
| // outage report). |
| kInternal = 13, |
| // There was a transient error. |
| kUnavailable = 14, |
| // Unrecoverable data loss or corruption. |
| kDataLoss = 15, |
| // The caller’s identity cannot be verified. |
| kUnauthenticated = 16, |
| }; |
| |
| // Represents an API error. |
| struct Error { |
| // The error code. This can be used to determine whether this is a |
| // client or service error. |
| Code code; |
| // A human readable error string intended for developers. |
| string message; |
| }; |