blob: 00c7ca403fc3dd654c3d2970e7b7cca5cacd5c47 [file] [log] [blame]
Protobuf Team Bot306123e2022-11-04 09:25:30 -07001// Copyright (c) 2009-2021, Google LLC
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6// * Redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer.
8// * Redistributions in binary form must reproduce the above copyright
9// notice, this list of conditions and the following disclaimer in the
10// documentation and/or other materials provided with the distribution.
11// * Neither the name of Google LLC nor the
12// names of its contributors may be used to endorse or promote products
13// derived from this software without specific prior written permission.
14//
15// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18// ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
19// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26#ifndef UPB_PROTOS_GENERATOR_ENUMS_H_
27#define UPB_PROTOS_GENERATOR_ENUMS_H_
28
29#include "google/protobuf/descriptor.h"
30#include "protos_generator/output.h"
31
32namespace protos_generator {
33
34namespace protobuf = ::google::protobuf;
35
36std::string EnumTypeName(const protobuf::EnumDescriptor* enum_descriptor);
Protobuf Team Bota35491f2023-02-24 16:35:31 -080037std::string EnumValueSymbolInNameSpace(
38 const protobuf::EnumDescriptor* desc,
39 const protobuf::EnumValueDescriptor* value);
Protobuf Team Bot306123e2022-11-04 09:25:30 -070040void WriteHeaderEnumForwardDecls(
41 std::vector<const protobuf::EnumDescriptor*>& enums, Output& output);
42void WriteEnumDeclarations(
43 const std::vector<const protobuf::EnumDescriptor*>& enums, Output& output);
44
45} // namespace protos_generator
46
47#endif // UPB_PROTOS_GENERATOR_ENUMS_H_