RESTinio

content-encoding.hpp
Go to the documentation of this file.
1/*
2 * RESTinio
3 */
4
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//
41 struct content_encoding_value_t
42{
43 using value_container_t = std::vector< std::string >;
44
45 value_container_t values;
46
52 RESTINIO_NODISCARD
53 static auto
54 make_parser()
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
68 RESTINIO_NODISCARD
69 static expected_t< content_encoding_value_t, restinio::easy_parser::parse_error_t >
70 try_parse( string_view_t what )
71 {
72 return restinio::easy_parser::try_parse( what, make_parser() );
73 }
74};
75
76} /* namespace http_field_parsers */
77
78} /* namespace restinio */
79
basics.hpp
Utilities for parsing values of http-fields.
RESTINIO_NODISCARD
#define RESTINIO_NODISCARD
Definition: compiler_features.hpp:33
restinio::easy_parser::try_parse
RESTINIO_NODISCARD expected_t< typename Producer::result_type, parse_error_t > try_parse(string_view_t from, Producer producer)
Perform the parsing of the specified content by using specified value producer.
Definition: easy_parser.hpp:5042
restinio::easy_parser::to_lower
RESTINIO_NODISCARD auto to_lower() noexcept
A factory function to create a to_lower_transformer.
Definition: easy_parser.hpp:4610
restinio::http_field_parsers::token_p
RESTINIO_NODISCARD auto token_p() noexcept
A factory function to create a token_producer.
Definition: basics.hpp:985
restinio
Definition: asio_include.hpp:21
restinio::string_view_t
nonstd::string_view string_view_t
Definition: string_view.hpp:19
restinio::expected_t
nonstd::expected< T, E > expected_t
Definition: expected.hpp:22
restinio::http_field_parsers::content_encoding_value_t
Tools for working with the value of Content-Encoding HTTP-field.
Definition: content-encoding.hpp:42
restinio::http_field_parsers::content_encoding_value_t::make_parser
static RESTINIO_NODISCARD auto make_parser()
A factory function for a parser of Content-Encoding value.
Definition: content-encoding.hpp:54
restinio::http_field_parsers::content_encoding_value_t::try_parse
static RESTINIO_NODISCARD 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.
Definition: content-encoding.hpp:70
restinio::http_field_parsers::content_encoding_value_t::value_container_t
std::vector< std::string > value_container_t
Definition: content-encoding.hpp:43
restinio::http_field_parsers::content_encoding_value_t::values
value_container_t values
Definition: content-encoding.hpp:45