// Protocol Buffers - Google's data interchange format // Copyright 2024 Google LLC. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd #ifndef GOOGLE_PROTOBUF_HPB_STATUS_H__ #define GOOGLE_PROTOBUF_HPB_STATUS_H__ #include "absl/status/status.h" #include "absl/types/source_location.h" #include "upb/wire/decode.h" #include "upb/wire/encode.h" namespace hpb { // This type exists to work around an absl type that has not yet been // released. struct SourceLocation { static SourceLocation current() { return {}; } absl::string_view file_name() { return ""; } int line() { return 0; } }; absl::Status MessageEncodeError(upb_EncodeStatus status, SourceLocation loc = SourceLocation::current()); absl::Status MessageAllocationError( SourceLocation loc = SourceLocation::current()); absl::Status ExtensionNotFoundError( int extension_number, SourceLocation loc = SourceLocation::current()); absl::Status MessageDecodeError(upb_DecodeStatus status, SourceLocation loc = SourceLocation::current()); } // namespace hpb #endif // GOOGLE_PROTOBUF_HPB_STATUS_H__