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 zstring_view() = default;
13 constexpr zstring_view(const char* str) noexcept : sv_(str) {}
14 zstring_view(const std::string& str) noexcept : sv_(str) {}
15
16 zstring_view(std::string_view) = delete;
17 zstring_view(std::string&&) = delete;
18
19 constexpr const char* c_str() const noexcept { return sv_.data(); }
20 constexpr std::string_view sv() const noexcept { return sv_; }
21 constexpr const char* data() const noexcept { return sv_.data(); }
22 constexpr std::size_t size() const noexcept { return sv_.size(); }
23 constexpr bool empty() const noexcept { return sv_.empty(); }
24 constexpr operator std::string_view() const noexcept { return sv_; }
25
26 private:
27 std::string_view sv_;
28 };
29}
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:14
constexpr zstring_view(const char *str) noexcept
Definition zstring_view.h:13
constexpr std::string_view sv() const noexcept
Definition zstring_view.h:20
constexpr const char * data() const noexcept
Definition zstring_view.h:21
zstring_view(std::string_view)=delete
constexpr const char * c_str() const noexcept
Definition zstring_view.h:19
zstring_view(std::string &&)=delete
constexpr bool empty() const noexcept
Definition zstring_view.h:23
constexpr operator std::string_view() const noexcept
Definition zstring_view.h:24
constexpr std::size_t size() const noexcept
Definition zstring_view.h:22
Definition file_descriptor.h:11