Nexus HTTP/3
A QUIC and HTTP/3 library
Public Types | Public Member Functions | List of all members
nexus::h3::fields Class Reference

an ordered list of headers for an http request or response. all field name comparisons are case-insensitive More...

#include <nexus/h3/fields.hpp>

Public Types

using size_type = list_type::size_type
 
using value_type = field
 
using iterator = list_type::iterator
 
using const_iterator = list_type::const_iterator
 

Public Member Functions

 fields ()=default
 construct an empty list of fields
 
 fields (fields &&o)=default
 move-construct the fields, leaving o empty
 
fieldsoperator= (fields &&o)
 move-assign the fields, leaving o empty
 
size_type size () const
 return the total number of fields in the list
 
bool empty () const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cend () const
 
size_type count (std::string_view name) const
 return the number of fields that match the given name
 
iterator find (std::string_view name)
 return an iterator to the first field that matches the given name
 
const_iterator find (std::string_view name) const
 return an iterator to the first field that matches the given name
 
auto equal_range (std::string_view name) -> std::pair< iterator, iterator >
 return an iterator pair corresponding to the range of fields that match the given name (the first match and one-past the last match)
 
auto equal_range (std::string_view name) const -> std::pair< const_iterator, const_iterator >
 return an iterator pair corresponding to the range of fields that match the given name (the first match and one-past the last match)
 
iterator insert (std::string_view name, std::string_view value, bool never_index=false)
 insert the given field after the last field that matches its name, or at the end of the list
 
iterator assign (std::string_view name, std::string_view value, bool never_index=false)
 insert the given field at the end of the list, erasing any existing fields with a matching name
 
iterator erase (iterator p)
 erase the field at the given position
 
iterator erase (iterator begin, iterator end)
 erase all fields in the range [begin,end)
 
void clear ()
 erase all fields
 

Detailed Description

an ordered list of headers for an http request or response. all field name comparisons are case-insensitive