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,
 
   80                                std::string_view discriminator_field);