10#include <fmt/format.h>
11#include <nlohmann/json.hpp>
50 return std::to_string(
view) +
"." + std::to_string(
seqno);
53 static std::optional<TxID>
from_str(
const std::string_view& sv)
55 const auto separator_idx = sv.find(
".");
56 if (separator_idx == std::string_view::npos)
64 const auto view_sv = sv.substr(0, separator_idx);
66 std::from_chars(view_sv.begin(), view_sv.end(), tx_id.
view);
75 const auto seqno_sv = sv.substr(separator_idx + 1);
77 std::from_chars(seqno_sv.begin(), seqno_sv.end(), tx_id.
seqno);
79 ec != std::errc() || p != seqno_sv.end() ||
107 fmt::format(
"Cannot parse TxID: Expected string, got {}", j.dump()));
111 if (!opt.has_value())
121 return "TransactionId";
126 schema[
"type"] =
"string";
127 schema[
"pattern"] =
"^[0-9]+\\.[0-9]+$";
Definition app_interface.h:14
constexpr SeqNo SEQNO_UNKNOWN
Definition tx_id.h:39
void fill_json_schema(nlohmann::json &schema, const ClaimsDigest *)
Definition claims_digest.h:64
std::string schema_name(const ClaimsDigest *)
Definition claims_digest.h:59
void from_json(const nlohmann::json &j, ClaimsDigest &hash)
Definition claims_digest.h:54
constexpr View VIEW_UNKNOWN
Definition tx_id.h:26
uint64_t View
Definition tx_id.h:23
void to_json(nlohmann::json &j, const ClaimsDigest &hash)
Definition claims_digest.h:49
uint64_t SeqNo
Definition tx_id.h:36
SeqNo seqno
Definition tx_id.h:46
bool operator==(const TxID &other) const
Definition tx_id.h:89
View view
Definition tx_id.h:45
std::string to_str() const
Definition tx_id.h:48
static std::optional< TxID > from_str(const std::string_view &sv)
Definition tx_id.h:53