Mana
NamespaceRegistry.h
Go to the documentation of this file.
1 
8 #pragma once
9 #include <memory>
10 #include <string_view>
11 #include <unordered_set>
12 
13 namespace mana
14 {
15  class StringPool;
16 
17  class NamespaceRegistry final
18  {
19  public:
20  explicit NamespaceRegistry(const std::shared_ptr<StringPool>& stringPool);
21 
22  std::string_view Intern(const std::string_view& name);
23  void RegisterNamespace(const std::string_view& name);
24  [[nodiscard]] bool IsNamespace(const std::string_view& name) const;
25 
26  private:
27  std::shared_ptr<StringPool> mStringPool;
28  std::unordered_set<std::string_view> mNamespaces;
29  };
30 }
Definition: NamespaceRegistry.h:18
void RegisterNamespace(const std::string_view &name)
Definition: NamespaceRegistry.cpp:23
std::string_view Intern(const std::string_view &name)
Definition: NamespaceRegistry.cpp:18
NamespaceRegistry(const std::shared_ptr< StringPool > &stringPool)
Definition: NamespaceRegistry.cpp:13
bool IsNamespace(const std::string_view &name) const
Definition: NamespaceRegistry.cpp:28
Definition: CodeBuffer.cpp:12