#pragma once #include #include #include #include namespace tracy { using OptionalNumber = std::optional; using BufferEntry = std::pair; class NameBuffer { public: static inline BufferEntry Add( const std::string& name ) { return getBuffer().add(name); } static inline const char* Get( uint16_t index ) { return getBuffer().get(index); } private: NameBuffer(); std::mutex m_mutex; std::vector m_buffer; std::size_t m_index; static inline NameBuffer& getBuffer() { static NameBuffer buffer; return buffer; } BufferEntry add( const std::string& name ); const char* get( uint16_t index ); }; } // namespace tracy