RESTinio
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
path2regex.hpp File Reference
#include <cassert>
#include <regex>
#include <string>
#include <vector>
#include <memory>
#include <functional>
#include <iterator>
#include <restinio/impl/include_fmtlib.hpp>
#include <restinio/exception.hpp>
#include <restinio/string_view.hpp>

Go to the source code of this file.

Classes

class  restinio::path2regex::options_t
 Options for matching routes. More...
 
class  restinio::path2regex::impl::string_view_buffer_storage_appender_t< Container >
 Appender for names to a given buffered string. More...
 
class  restinio::path2regex::impl::token_t< Route_Param_Appender >
 Base class for token variants. More...
 
class  restinio::path2regex::impl::plain_string_token_t< Route_Param_Appender >
 Plain str token. More...
 
class  restinio::path2regex::impl::parameter_token_t< Route_Param_Appender, Name >
 Token for paramater (named/indexed). More...
 
struct  restinio::path2regex::impl::route_regex_matcher_data_t< Route_Param_Appender, Regex_Engine >
 Resulting regex and param extraction for a specific route. More...
 

Namespaces

namespace  restinio
 
namespace  restinio::path2regex
 
namespace  restinio::path2regex::impl
 

Typedefs

template<typename Route_Param_Appender >
using restinio::path2regex::param_appender_t = std::function< void(Route_Param_Appender &, string_view_t) >
 Appends sub-match as a request parameter to specified container. More...
 
template<typename Route_Param_Appender >
using restinio::path2regex::param_appender_sequence_t = std::vector< param_appender_t< Route_Param_Appender > >
 A sequence of appenders for submatches. More...
 
using restinio::path2regex::impl::names_buffer_appender_t = string_view_buffer_storage_appender_t< std::string >
 
template<typename Route_Param_Appender >
using restinio::path2regex::impl::token_unique_ptr_t = std::unique_ptr< token_t< Route_Param_Appender > >
 
template<typename Route_Param_Appender >
using restinio::path2regex::impl::token_list_t = std::vector< token_unique_ptr_t< Route_Param_Appender > >
 

Enumerations

enum class  restinio::path2regex::impl::token_type_t : std::uint8_t { restinio::path2regex::impl::plain_string , restinio::path2regex::impl::capturing_token }
 

Functions

auto restinio::path2regex::impl::escape_group (const std::string &group)
 Escapes not allowed symbols in a sub-match group assigned to a parameter. More...
 
auto restinio::path2regex::impl::escape_string (const std::string &group)
 Excape regex control chars. More...
 
template<typename Route_Param_Appender >
param_appender_t< Route_Param_Appender > restinio::path2regex::make_param_setter (string_view_t key)
 Create default appender for named parameter. More...
 
template<typename Route_Param_Appender >
param_appender_t< Route_Param_Appender > restinio::path2regex::make_param_setter (std::size_t)
 Create default appender indexed parameter. More...
 
template<typename Route_Param_Appender >
token_unique_ptr_t< Route_Param_Appender > restinio::path2regex::impl::create_token (std::string path)
 
template<typename Route_Param_Appender , typename Name >
token_unique_ptr_t< Route_Param_Appender > restinio::path2regex::impl::create_token (Name name, std::string prefix, std::string delimiter, bool optional, bool repeat, bool partial, std::string pattern)
 Creates tokent for specific parameter. More...
 
std::string restinio::path2regex::impl::check_no_unescaped_brackets (string_view_t strv, std::size_t base_pos)
 Checks that string doesn't contain non-excaped brackets. More...
 
template<typename Route_Param_Appender , typename MATCH >
void restinio::path2regex::impl::handle_param_token (const options_t &options, const MATCH &match, std::string &path, bool &path_escaped, token_list_t< Route_Param_Appender > &result)
 Handling of a parameterized token. More...
 
template<typename Route_Param_Appender >
token_list_t< Route_Param_Appender > restinio::path2regex::impl::parse (string_view_t route_sv, const options_t &options)
 Parse a string for the raw tokens. More...
 
template<typename Route_Param_Appender , typename Regex_Engine >
auto restinio::path2regex::impl::tokens2regexp (string_view_t path, const token_list_t< Route_Param_Appender > &tokens, const options_t &options)
 Makes route regex matcher out of path tokens. More...
 
template<typename Route_Param_Appender , typename Regex_Engine >
auto restinio::path2regex::path2regex (string_view_t path, const options_t &options)
 The main path matching regexp. More...
 

Variables

constexpr auto restinio::path2regex::impl::path_regex_str
 The main path matching expression. More...
 
constexpr std::size_t restinio::path2regex::impl::group_escaped_idx = 1
 Indexes for different groups in matched result (used when extracting tokens from initial route). More...
 
constexpr std::size_t restinio::path2regex::impl::group_name_idx = 2
 
constexpr std::size_t restinio::path2regex::impl::group_capture_idx = 3
 
constexpr std::size_t restinio::path2regex::impl::group_group_idx = 4
 
constexpr std::size_t restinio::path2regex::impl::group_modifier_idx = 5