#pragma once #include #include #include /* * Zero-terminated string view. * * Has a c_str() for use with system/cstdlib calls (like TString) * but can be constructed from a string literal or command-line arg * without memory allocation (like TStringBuf). * * Use it to reference filenames, thread names, string formats etc. */ class TZtStringBuf: public TStringBuf { public: constexpr TZtStringBuf(const char* s Y_LIFETIME_BOUND) noexcept : TStringBuf(s) { } TZtStringBuf(const TString& s Y_LIFETIME_BOUND) noexcept : TStringBuf(s) { } TZtStringBuf(const std::string& s Y_LIFETIME_BOUND) noexcept : TStringBuf(s) { } constexpr TZtStringBuf() noexcept : TZtStringBuf("") { } TZtStringBuf(const TStringBuf&) = delete; constexpr const char* c_str() const noexcept { return data(); } }; template <> struct THash : public THash { };