xref: /aosp_15_r20/external/flatbuffers/src/bfbs_namer.h (revision 890232f25432b36107d06881e0a25aaa6b473652)
1 #ifndef FLATBUFFERS_BFBS_NAMER
2 #define FLATBUFFERS_BFBS_NAMER
3 
4 #include "flatbuffers/reflection.h"
5 #include "namer.h"
6 
7 namespace flatbuffers {
8 
9 // Provides Namer capabilities to types defined in the flatbuffers reflection.
10 class BfbsNamer : public Namer {
11  public:
BfbsNamer(Config config,std::set<std::string> keywords)12   explicit BfbsNamer(Config config, std::set<std::string> keywords)
13       : Namer(config, std::move(keywords)) {}
14 
15   using Namer::Constant;
16   using Namer::Denamespace;
17   using Namer::Directories;
18   using Namer::Field;
19   using Namer::File;
20   using Namer::Function;
21   using Namer::Method;
22   using Namer::Namespace;
23   using Namer::NamespacedType;
24   using Namer::ObjectType;
25   using Namer::Type;
26   using Namer::Variable;
27   using Namer::Variant;
28 
29   template<typename T>
30   std::string Denamespace(T t, std::string &namespace_prefix,
31                           const char delimiter = '.') const {
32     return Namer::Denamespace(t->name()->c_str(), namespace_prefix, delimiter);
33   }
34 
35   template<typename T>
36   std::string Denamespace(T t, const char delimiter = '.') const {
37     return Namer::Denamespace(t->name()->c_str(), delimiter);
38   }
39 };
40 
41 }  // namespace flatbuffers
42 
43 #endif  // FLATBUFFERS_BFBS_NAMER