RESTinio
Classes | Typedefs | Functions
restinio::http_field_parsers::range_details Namespace Reference

Classes

struct  byte_ranges_specifier_t
 A struct that holds a container of byte_range_specs. More...
 
struct  double_ended_range_t
 Value of range for the case where both ends of the range are defined. More...
 
struct  open_ended_range_t
 Value of range for the case where only left border of the range is defined. More...
 
struct  other_ranges_specifier_t
 A description of a range value of units those are not "bytes". More...
 
struct  suffix_length_t
 Value of range for the case where only length of range's suffix is defined. More...
 

Typedefs

template<typename T >
using byte_range_spec_t = variant_t< double_ended_range_t< T >, open_ended_range_t< T >, suffix_length_t< T > >
 Variant type for all possible cases of specification for one range. More...
 
template<typename T >
using value_t = variant_t< byte_ranges_specifier_t< T >, other_ranges_specifier_t >
 Variant type for holding parsed value of Range HTTP-field. More...
 

Functions

template<typename T >
RESTINIO_NODISCARD auto make_byte_range_spec_parser ()
 Factory for creation of a parser for byte_range_spec values. More...
 
RESTINIO_NODISCARD auto make_bytes_prefix_parser ()
 Factory for a parser of 'bytes=' prefix. More...
 
template<typename T >
RESTINIO_NODISCARD auto make_byte_ranges_specifier_parser ()
 Factory for creation of a parser for byte_ranges_specifier values. More...
 
RESTINIO_NODISCARD auto make_other_ranges_specifier_parser ()
 Factory for creation of a parser for other_ranges_specifier values. More...
 

Typedef Documentation

◆ byte_range_spec_t

Variant type for all possible cases of specification for one range.

Since
v.0.6.2

Definition at line 85 of file range.hpp.

◆ value_t

Variant type for holding parsed value of Range HTTP-field.

Since
v.0.6.2

Definition at line 126 of file range.hpp.

Function Documentation

◆ make_byte_range_spec_parser()

template<typename T >
RESTINIO_NODISCARD auto restinio::http_field_parsers::range_details::make_byte_range_spec_parser ( )

Factory for creation of a parser for byte_range_spec values.

Creates a parser for the following rule:

byte-range-spec = byte-range / suffix-byte-range-spec

byte-range      = first-byte-pos "-" [ last-byte-pos ]
first-byte-pos  = 1*DIGIT
last-byte-pos   = 1*DIGIT

suffix-byte-range-spec = "-" suffix-length
suffix-length = 1*DIGIT

The parser returned produces value of byte_range_spec_t<T>.

Since
v.0.6.2

Definition at line 152 of file range.hpp.

◆ make_byte_ranges_specifier_parser()

template<typename T >
RESTINIO_NODISCARD auto restinio::http_field_parsers::range_details::make_byte_ranges_specifier_parser ( )

Factory for creation of a parser for byte_ranges_specifier values.

Creates a parser for the following rule:

byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set  = 1#( byte-range-spec / suffix-byte-range-spec )
byte-range-spec = first-byte-pos "-" [ last-byte-pos ]
first-byte-pos  = 1*DIGIT
last-byte-pos   = 1*DIGIT

suffix-byte-range-spec = "-" suffix-length
suffix-length = 1*DIGIT

The parser returned produces value of byte_ranges_specifier_t<T>.

Since
v.0.6.2

Definition at line 211 of file range.hpp.

◆ make_bytes_prefix_parser()

RESTINIO_NODISCARD auto restinio::http_field_parsers::range_details::make_bytes_prefix_parser ( )
inline

Factory for a parser of 'bytes=' prefix.

Since
v.0.6.2

Definition at line 184 of file range.hpp.

◆ make_other_ranges_specifier_parser()

RESTINIO_NODISCARD auto restinio::http_field_parsers::range_details::make_other_ranges_specifier_parser ( )
inline

Factory for creation of a parser for other_ranges_specifier values.

Creates a parser for the following rule:

other-ranges-specifier = other-range-unit "=" other-range-set
other-range-set = 1*VCHAR

The parser returned produces value of other_ranges_specifier_t.

Since
v.0.6.2

Definition at line 239 of file range.hpp.