userver: userver/compression/error.hpp Source File
Loading...
Searching...
No Matches
error.hpp
1#pragma once
2
3#include <stdexcept>
4
5#include <fmt/format.h>
6
7USERVER_NAMESPACE_BEGIN
8
9namespace compression {
10
11/// Base class for decompression errors
12class DecompressionError : public std::runtime_error {
13 using std::runtime_error::runtime_error;
14};
15
16/// Decompressed data size exceeds the limit
17class TooBigError : public DecompressionError {
18public:
19 TooBigError()
20 : DecompressionError("Decompressed data exceeds the limit")
21 {}
22};
23
24class ErrWithCode : public DecompressionError {
25public:
26 explicit ErrWithCode(const char* err_name)
27 : DecompressionError(fmt::format("Decompression failed: {}", err_name))
28 {}
29};
30
31} // namespace compression
32
33USERVER_NAMESPACE_END