itch-mold-replay 1.0
Time-accurate NASDAQ TotalView-ITCH 5.0 replay over MoldUDP64
Loading...
Searching...
No Matches
zstring_view.h
Go to the documentation of this file.
1#pragma once
2
3#include <string_view>
4#include <string>
5
6namespace imr::util
7{
8 /// A wrapper around `std::string_view` that guarantees null terminated strings for passing to C APIs.
10 {
11 public:
12 constexpr zstring_view(const char* str) noexcept : sv_(str) {}
13 zstring_view(const std::string& str) noexcept : sv_(str) {}
14
15 zstring_view(std::string_view) = delete;
16 zstring_view(std::string&&) = delete;
17
18 constexpr const char* c_str() const noexcept { return sv_.data(); }
19 constexpr std::string_view sv() const noexcept { return sv_; }
20 constexpr const char* data() const noexcept { return sv_.data(); }
21 constexpr std::size_t size() const noexcept { return sv_.size(); }
22 constexpr bool empty() const noexcept { return sv_.empty(); }
23 constexpr operator std::string_view() const noexcept { return sv_; }
24
25 private:
26 std::string_view sv_;
27 };
28}
A wrapper around std::string_view that guarantees null terminated strings for passing to C APIs.
Definition zstring_view.h:10
zstring_view(const std::string &str) noexcept
Definition zstring_view.h:13
constexpr zstring_view(const char *str) noexcept
Definition zstring_view.h:12
constexpr std::string_view sv() const noexcept
Definition zstring_view.h:19
constexpr const char * data() const noexcept
Definition zstring_view.h:20
zstring_view(std::string_view)=delete
constexpr const char * c_str() const noexcept
Definition zstring_view.h:18
zstring_view(std::string &&)=delete
constexpr bool empty() const noexcept
Definition zstring_view.h:22
constexpr operator std::string_view() const noexcept
Definition zstring_view.h:23
constexpr std::size_t size() const noexcept
Definition zstring_view.h:21
Definition file_descriptor.h:11