RESTinio
content-encoding.hpp
Go to the documentation of this file.
1 /*
2  * RESTinio
3  */
4 
5 /*!
6  * @file
7  * @brief Stuff related to value of Content-Encoding HTTP-field.
8  *
9  * @since v.0.6.1
10  */
11 
12 #pragma once
13 
14 #include <restinio/helpers/http_field_parsers/basics.hpp>
15 
16 namespace restinio
17 {
18 
19 namespace http_field_parsers
20 {
21 
22 //
23 // content_encoding_value_t
24 //
25 /*!
26  * @brief Tools for working with the value of Content-Encoding HTTP-field.
27  *
28  * This struct represents parsed value of HTTP-field Content-Encoding
29  * (see https://tools.ietf.org/html/rfc7231#section-3.1.2.2):
30 @verbatim
31  Content-Encoding = 1#content-coding
32  content-coding = token
33 @endverbatim
34  *
35  * @note
36  * Parameter names are converted to lower case during the parsing.
37  * Parameter values are left as they are.
38  *
39  * @since v.0.6.1
40  */
42 {
44 
46 
47  /*!
48  * @brief A factory function for a parser of Content-Encoding value.
49  *
50  * @since v.0.6.1
51  */
52  [[nodiscard]]
53  static auto
55  {
56  return produce< content_encoding_value_t >(
57  non_empty_comma_separated_list_p< value_container_t >(
58  token_p() >> to_lower()
59  ) >> &content_encoding_value_t::values
60  );
61  }
62 
63  /*!
64  * @brief An attempt to parse Content-Encoding HTTP-field.
65  *
66  * @since v.0.6.1
67  */
68  [[nodiscard]]
71  {
72  return restinio::easy_parser::try_parse( what, make_parser() );
73  }
74 };
75 
76 } /* namespace http_field_parsers */
77 
78 } /* namespace restinio */
expected_t< std::optional< string_view_t >, not_found_t > find_first(const parameter_with_optional_value_container_t &where, string_view_t what)
A helper function to find the first occurence of a parameter with the specified value.
Definition: basics.hpp:1740
std::enable_if< std::is_same< Parameter_Container, query_string_params_t >::value||std::is_same< Parameter_Container, router::route_params_t >::value, std::optional< Value_Type > >::type opt_value(const Parameter_Container &params, string_view_t key)
Gets the value of a parameter specified by key wrapped in std::optional<Value_Type> if parameter exis...
Definition: value_or.hpp:64
Tools for working with the value of Content-Encoding HTTP-field.
static expected_t< content_encoding_value_t, restinio::easy_parser::parse_error_t > try_parse(string_view_t what)
An attempt to parse Content-Encoding HTTP-field.
static auto make_parser()
A factory function for a parser of Content-Encoding value.