• 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/annotate.h"
16 
17 #include "icing/text_classifier/lib3/utils/base/status.h"
18 #include "icing/absl_ports/str_cat.h"
19 
20 namespace icing {
21 namespace lib {
22 namespace absl_ports {
23 
24 namespace {
25 constexpr std::string_view kErrorSeparator = ";";
26 }  // namespace
27 
Annotate(const libtextclassifier3::Status & s,std::string_view msg)28 libtextclassifier3::Status Annotate(const libtextclassifier3::Status& s,
29                                     std::string_view msg) {
30   if (s.ok() || msg.empty()) {
31     return s;
32   }
33 
34   std::string new_msg =
35       (!s.error_message().empty())
36           ? absl_ports::StrCat(msg, kErrorSeparator, s.error_message())
37           : std::string(msg);
38   return libtextclassifier3::Status(s.CanonicalCode(), new_msg);
39 }
40 
41 }  // namespace absl_ports
42 }  // namespace lib
43 }  // namespace icing
44