TLA Line data Source code
1 : //
2 : // Copyright (c) 2026 Mohammad Nejati
3 : //
4 : // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 : //
7 : // Official repository: https://github.com/cppalliance/http
8 : //
9 :
10 : #include <boost/http/zstd/error.hpp>
11 :
12 : namespace boost {
13 : namespace http {
14 : namespace zstd {
15 : namespace detail {
16 :
17 : const char*
18 HIT 1 : error_cat_type::
19 : name() const noexcept
20 : {
21 1 : return "boost.http.zstd";
22 : }
23 :
24 : bool
25 5 : error_cat_type::
26 : failed(int ev) const noexcept
27 : {
28 5 : return ev != 0;
29 : }
30 :
31 : std::string
32 2 : error_cat_type::
33 : message(int ev) const
34 : {
35 4 : return message(ev, nullptr, 0);
36 : }
37 :
38 : char const*
39 2 : error_cat_type::
40 : message(
41 : int ev,
42 : char*,
43 : std::size_t) const noexcept
44 : {
45 2 : switch(static_cast<error>(ev))
46 : {
47 MIS 0 : case error::no_error: return "no_error";
48 0 : case error::generic: return "generic";
49 0 : case error::prefix_unknown: return "prefix_unknown";
50 0 : case error::version_unsupported: return "version_unsupported";
51 0 : case error::frame_parameter_unsupported: return "frame_parameter_unsupported";
52 0 : case error::frame_parameter_window_too_large: return "frame_parameter_window_too_large";
53 HIT 1 : case error::corruption_detected: return "corruption_detected";
54 MIS 0 : case error::checksum_wrong: return "checksum_wrong";
55 0 : case error::literals_header_wrong: return "literals_header_wrong";
56 0 : case error::dictionary_corrupted: return "dictionary_corrupted";
57 0 : case error::dictionary_wrong: return "dictionary_wrong";
58 0 : case error::dictionary_creation_failed: return "dictionary_creation_failed";
59 0 : case error::parameter_unsupported: return "parameter_unsupported";
60 0 : case error::parameter_combination_unsupported: return "parameter_combination_unsupported";
61 0 : case error::parameter_out_of_bound: return "parameter_out_of_bound";
62 0 : case error::table_log_too_large: return "table_log_too_large";
63 0 : case error::max_symbol_value_too_large: return "max_symbol_value_too_large";
64 0 : case error::max_symbol_value_too_small: return "max_symbol_value_too_small";
65 0 : case error::cannot_produce_uncompressed_block: return "cannot_produce_uncompressed_block";
66 0 : case error::stability_condition_not_respected: return "stability_condition_not_respected";
67 0 : case error::stage_wrong: return "stage_wrong";
68 0 : case error::init_missing: return "init_missing";
69 0 : case error::memory_allocation: return "memory_allocation";
70 0 : case error::work_space_too_small: return "work_space_too_small";
71 0 : case error::dst_size_too_small: return "dst_size_too_small";
72 0 : case error::src_size_wrong: return "src_size_wrong";
73 0 : case error::dst_buffer_null: return "dst_buffer_null";
74 0 : case error::no_forward_progress_dest_full: return "no_forward_progress_dest_full";
75 0 : case error::no_forward_progress_input_empty: return "no_forward_progress_input_empty";
76 HIT 1 : default:
77 1 : return "unknown";
78 : }
79 : }
80 :
81 : // msvc 14.0 has a bug that warns about inability
82 : // to use constexpr construction here, even though
83 : // there's no constexpr construction
84 : #if defined(_MSC_VER) && _MSC_VER <= 1900
85 : # pragma warning( push )
86 : # pragma warning( disable : 4592 )
87 : #endif
88 :
89 : #if defined(__cpp_constinit) && __cpp_constinit >= 201907L
90 : constinit error_cat_type error_cat;
91 : #else
92 : error_cat_type error_cat;
93 : #endif
94 :
95 : #if defined(_MSC_VER) && _MSC_VER <= 1900
96 : # pragma warning( pop )
97 : #endif
98 :
99 : } // detail
100 : } // zstd
101 : } // http
102 : } // boost
|