12USERVER_NAMESPACE_BEGIN
14namespace formats::
json {
18 explicit Exception(std::string msg) : msg_(std::move(msg)) {}
20 const char* what()
const noexcept final {
return msg_.c_str(); }
22 std::string_view GetMessage()
const noexcept {
return msg_; }
35 explicit ExceptionWithPath(std::string_view msg, std::string_view path);
37 std::string_view GetPath()
const noexcept;
38 std::string_view GetMessageWithoutPath()
const noexcept;
41 std::size_t path_size_;
46 explicit BadStreamException(
const std::istream& is);
47 explicit BadStreamException(
const std::ostream& os);
52 TypeMismatchException(
int actual,
int expected, std::string_view path);
53 std::string_view GetActual()
const;
54 std::string_view GetExpected()
const;
63 OutOfBoundsException(size_t index, size_t size, std::string_view path);
68 explicit MemberMissingException(std::string_view path);
74 ConversionException(std::string_view msg, std::string_view path);
79 UnknownDiscriminatorException(std::string_view path, std::string_view discriminator_field);