• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2019 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "icing/absl_ports/canonical_errors.h"
16 
17 #include "icing/text_classifier/lib3/utils/base/status.h"
18 
19 namespace icing {
20 namespace lib {
21 namespace absl_ports {
22 
CancelledError(std::string_view error_message)23 libtextclassifier3::Status CancelledError(std::string_view error_message) {
24   return libtextclassifier3::Status(libtextclassifier3::StatusCode::CANCELLED,
25                                     std::string(error_message));
26 }
27 
UnknownError(std::string_view error_message)28 libtextclassifier3::Status UnknownError(std::string_view error_message) {
29   return libtextclassifier3::Status(libtextclassifier3::StatusCode::UNKNOWN,
30                                     std::string(error_message));
31 }
32 
InvalidArgumentError(std::string_view error_message)33 libtextclassifier3::Status InvalidArgumentError(
34     std::string_view error_message) {
35   return libtextclassifier3::Status(
36       libtextclassifier3::StatusCode::INVALID_ARGUMENT,
37       std::string(error_message));
38 }
39 
DeadlineExceededError(std::string_view error_message)40 libtextclassifier3::Status DeadlineExceededError(
41     std::string_view error_message) {
42   return libtextclassifier3::Status(
43       libtextclassifier3::StatusCode::DEADLINE_EXCEEDED,
44       std::string(error_message));
45 }
46 
NotFoundError(std::string_view error_message)47 libtextclassifier3::Status NotFoundError(std::string_view error_message) {
48   return libtextclassifier3::Status(libtextclassifier3::StatusCode::NOT_FOUND,
49                                     std::string(error_message));
50 }
51 
AlreadyExistsError(std::string_view error_message)52 libtextclassifier3::Status AlreadyExistsError(std::string_view error_message) {
53   return libtextclassifier3::Status(
54       libtextclassifier3::StatusCode::ALREADY_EXISTS,
55       std::string(error_message));
56 }
57 
PermissionDeniedError(std::string_view error_message)58 libtextclassifier3::Status PermissionDeniedError(
59     std::string_view error_message) {
60   return libtextclassifier3::Status(
61       libtextclassifier3::StatusCode::PERMISSION_DENIED,
62       std::string(error_message));
63 }
64 
ResourceExhaustedError(std::string_view error_message)65 libtextclassifier3::Status ResourceExhaustedError(
66     std::string_view error_message) {
67   return libtextclassifier3::Status(
68       libtextclassifier3::StatusCode::RESOURCE_EXHAUSTED,
69       std::string(error_message));
70 }
71 
FailedPreconditionError(std::string_view error_message)72 libtextclassifier3::Status FailedPreconditionError(
73     std::string_view error_message) {
74   return libtextclassifier3::Status(
75       libtextclassifier3::StatusCode::FAILED_PRECONDITION,
76       std::string(error_message));
77 }
78 
AbortedError(std::string_view error_message)79 libtextclassifier3::Status AbortedError(std::string_view error_message) {
80   return libtextclassifier3::Status(libtextclassifier3::StatusCode::ABORTED,
81                                     std::string(error_message));
82 }
83 
OutOfRangeError(std::string_view error_message)84 libtextclassifier3::Status OutOfRangeError(std::string_view error_message) {
85   return libtextclassifier3::Status(
86       libtextclassifier3::StatusCode::OUT_OF_RANGE, std::string(error_message));
87 }
88 
UnimplementedError(std::string_view error_message)89 libtextclassifier3::Status UnimplementedError(std::string_view error_message) {
90   return libtextclassifier3::Status(
91       libtextclassifier3::StatusCode::UNIMPLEMENTED,
92       std::string(error_message));
93 }
94 
InternalError(std::string_view error_message)95 libtextclassifier3::Status InternalError(std::string_view error_message) {
96   return libtextclassifier3::Status(libtextclassifier3::StatusCode::INTERNAL,
97                                     std::string(error_message));
98 }
99 
UnavailableError(std::string_view error_message)100 libtextclassifier3::Status UnavailableError(std::string_view error_message) {
101   return libtextclassifier3::Status(libtextclassifier3::StatusCode::UNAVAILABLE,
102                                     std::string(error_message));
103 }
104 
DataLossError(std::string_view error_message)105 libtextclassifier3::Status DataLossError(std::string_view error_message) {
106   return libtextclassifier3::Status(libtextclassifier3::StatusCode::DATA_LOSS,
107                                     std::string(error_message));
108 }
109 
UnauthenticatedError(std::string_view error_message)110 libtextclassifier3::Status UnauthenticatedError(
111     std::string_view error_message) {
112   return libtextclassifier3::Status(
113       libtextclassifier3::StatusCode::UNAUTHENTICATED,
114       std::string(error_message));
115 }
116 
IsCancelled(const libtextclassifier3::Status & status)117 bool IsCancelled(const libtextclassifier3::Status& status) {
118   return status.CanonicalCode() == libtextclassifier3::StatusCode::CANCELLED;
119 }
IsUnknown(const libtextclassifier3::Status & status)120 bool IsUnknown(const libtextclassifier3::Status& status) {
121   return status.CanonicalCode() == libtextclassifier3::StatusCode::UNKNOWN;
122 }
IsInvalidArgument(const libtextclassifier3::Status & status)123 bool IsInvalidArgument(const libtextclassifier3::Status& status) {
124   return status.CanonicalCode() ==
125          libtextclassifier3::StatusCode::INVALID_ARGUMENT;
126 }
IsDeadlineExceeded(const libtextclassifier3::Status & status)127 bool IsDeadlineExceeded(const libtextclassifier3::Status& status) {
128   return status.CanonicalCode() ==
129          libtextclassifier3::StatusCode::DEADLINE_EXCEEDED;
130 }
IsNotFound(const libtextclassifier3::Status & status)131 bool IsNotFound(const libtextclassifier3::Status& status) {
132   return status.CanonicalCode() == libtextclassifier3::StatusCode::NOT_FOUND;
133 }
IsAlreadyExists(const libtextclassifier3::Status & status)134 bool IsAlreadyExists(const libtextclassifier3::Status& status) {
135   return status.CanonicalCode() ==
136          libtextclassifier3::StatusCode::ALREADY_EXISTS;
137 }
IsPermissionDenied(const libtextclassifier3::Status & status)138 bool IsPermissionDenied(const libtextclassifier3::Status& status) {
139   return status.CanonicalCode() ==
140          libtextclassifier3::StatusCode::PERMISSION_DENIED;
141 }
IsResourceExhausted(const libtextclassifier3::Status & status)142 bool IsResourceExhausted(const libtextclassifier3::Status& status) {
143   return status.CanonicalCode() ==
144          libtextclassifier3::StatusCode::RESOURCE_EXHAUSTED;
145 }
IsFailedPrecondition(const libtextclassifier3::Status & status)146 bool IsFailedPrecondition(const libtextclassifier3::Status& status) {
147   return status.CanonicalCode() ==
148          libtextclassifier3::StatusCode::FAILED_PRECONDITION;
149 }
IsAborted(const libtextclassifier3::Status & status)150 bool IsAborted(const libtextclassifier3::Status& status) {
151   return status.CanonicalCode() == libtextclassifier3::StatusCode::ABORTED;
152 }
IsOutOfRange(const libtextclassifier3::Status & status)153 bool IsOutOfRange(const libtextclassifier3::Status& status) {
154   return status.CanonicalCode() == libtextclassifier3::StatusCode::OUT_OF_RANGE;
155 }
IsUnimplemented(const libtextclassifier3::Status & status)156 bool IsUnimplemented(const libtextclassifier3::Status& status) {
157   return status.CanonicalCode() ==
158          libtextclassifier3::StatusCode::UNIMPLEMENTED;
159 }
IsInternal(const libtextclassifier3::Status & status)160 bool IsInternal(const libtextclassifier3::Status& status) {
161   return status.CanonicalCode() == libtextclassifier3::StatusCode::INTERNAL;
162 }
IsUnavailable(const libtextclassifier3::Status & status)163 bool IsUnavailable(const libtextclassifier3::Status& status) {
164   return status.CanonicalCode() == libtextclassifier3::StatusCode::UNAVAILABLE;
165 }
IsDataLoss(const libtextclassifier3::Status & status)166 bool IsDataLoss(const libtextclassifier3::Status& status) {
167   return status.CanonicalCode() == libtextclassifier3::StatusCode::DATA_LOSS;
168 }
IsUnauthenticated(const libtextclassifier3::Status & status)169 bool IsUnauthenticated(const libtextclassifier3::Status& status) {
170   return status.CanonicalCode() ==
171          libtextclassifier3::StatusCode::UNAUTHENTICATED;
172 }
173 
174 }  // namespace absl_ports
175 }  // namespace lib
176 }  // namespace icing
177