21namespace http_field_parsers
24namespace content_disposition_details
53 ep_impl::source_t::content_consumer_t consumer{ from };
57 if(
'*' == *(result->rbegin()) )
61 consumer.started_at() + result->size() - 1,
62 error_reason_t::unexpected_character
95 ep_impl::source_t::content_consumer_t consumer{ from };
99 if(
'*' != *(result->rbegin()) )
103 consumer.started_at(),
104 error_reason_t::pattern_not_found
301 return produce< std::string >(
354 using namespace content_disposition_details;
356 return produce< content_disposition_value_t >(
359 produce< parameter_container_t >(
361 produce< parameter_t >(
367 regular_token_producer_t{}
368 >>
to_lower() >> ¶meter_t::first,
371 token_p() >> ¶meter_t::second,
376 ext_token_producer_t{}
377 >>
to_lower() >> ¶meter_t::first,
Utilities for parsing values of http-fields.
The class that implements "input stream".
A template for producer of charachers that satisfy some predicate.
Information about parsing error.
A producer for token that is an "extended parameter name" in sense of RCF6266 and RCF5987.
RESTINIO_NODISCARD expected_t< result_type, parse_error_t > try_parse(ep_impl::source_t &from) const
A producer for token that is a "regular parameter name" in sense of RCF6266 and RCF5987.
RESTINIO_NODISCARD expected_t< result_type, parse_error_t > try_parse(ep_impl::source_t &from) const
RESTINIO_NODISCARD expected_t< result_type, parse_error_t > try_parse(source_t &from) const
#define RESTINIO_NODISCARD
RESTINIO_NODISCARD constexpr bool is_digit(const char ch) noexcept
Is a character a decimal digit?
RESTINIO_NODISCARD auto symbol(char expected) noexcept
A factory function to create a clause that expects the speficied symbol, extracts it and then skips i...
RESTINIO_NODISCARD auto sequence(Clauses &&... clauses)
A factory function to create a sequence of subclauses.
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.
RESTINIO_NODISCARD auto repeat(std::size_t min_occurences, std::size_t max_occurences, Clauses &&... clauses)
A factory function to create repetitor of subclauses.
constexpr std::size_t N
A special marker that means infinite repetitions.
RESTINIO_NODISCARD auto to_container()
A factory function to create a to_container_consumer.
RESTINIO_NODISCARD auto symbol_p(char expected) noexcept
A factory function to create a symbol_producer.
RESTINIO_NODISCARD auto to_lower() noexcept
A factory function to create a to_lower_transformer.
RESTINIO_NODISCARD auto alternatives(Clauses &&... clauses)
A factory function to create an alternatives clause.
RESTINIO_NODISCARD auto mime_charsetc_symbol_p()
A factory for producer that extracts mime-charsetc symbols.
RESTINIO_NODISCARD auto language_symbol_p()
A factory for producer that extracts language symbols.
RESTINIO_NODISCARD auto attr_char_symbol_p()
A factory for producer that extracts attr-char symbols.
RESTINIO_NODISCARD auto ext_parameter_value_p()
A producer for an "extended parameter value" in sense of RCF6266 and RCF5987.
RESTINIO_NODISCARD auto pct_encoded_symbols_p()
A producer that extract a sequence of symbols represented a percent-encoded character.
RESTINIO_NODISCARD constexpr bool is_alpha(const char ch) noexcept
Is a character an ALPHA?
std::vector< parameter_with_mandatory_value_t > parameter_with_mandatory_value_container_t
A type of container for parameters with mandatory values.
RESTINIO_NODISCARD auto ows() noexcept
A factory function to create an OWS clause.
RESTINIO_NODISCARD auto token_p() noexcept
A factory function to create a token_producer.
RESTINIO_NODISCARD auto quoted_string_p() noexcept
A factory function to create a quoted_string_producer.
std::pair< std::string, std::string > parameter_with_mandatory_value_t
A type that describes a parameter with mandatory value.
nonstd::string_view string_view_t
nonstd::expected< T, E > expected_t
Stuff related to percent-encoded symbols.
A preducate for symbol_producer_template that checks that a symbol is attr-char symbol from RCF5987.
RESTINIO_NODISCARD bool operator()(const char actual) const noexcept
A preducate for symbol_producer_template that checks that a symbol is language symbol from RCF5646.
RESTINIO_NODISCARD bool operator()(const char actual) const noexcept
A preducate for symbol_producer_template that checks that a symbol is mime-charsetc symbol from RCF59...
RESTINIO_NODISCARD bool operator()(const char actual) const noexcept
Tools for working with the value of Content-Disposition HTTP-field.
static RESTINIO_NODISCARD expected_t< content_disposition_value_t, restinio::easy_parser::parse_error_t > try_parse(string_view_t what)
An attempt to parse Content-Disposition HTTP-field.
parameter_with_mandatory_value_container_t parameter_container_t
parameter_container_t parameters
parameter_with_mandatory_value_t parameter_t
static RESTINIO_NODISCARD auto make_parser()
A factory function for a parser of Content-Disposition value.
A special consumer that inserts an extracted sequence of symbols into the result string.