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