.. _program_listing_file_uri-template_Matcher.h: Program Listing for File Matcher.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``uri-template/Matcher.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "Template.h" #include namespace URI { namespace Template { class Match { public: Match(std::size_t start, std::size_t end); ~Match() = default; std::size_t Start() const; std::size_t End() const; private: std::size_t start_; std::size_t end_; }; std::optional MatchLiteral(const Literal& literal, const std::string& where, std::size_t start, bool exact_start); std::optional MatchVarValue(const Variable& var, const Operator& oper, std::optional&& where); std::optional MatchExpression(const Expression& expression, const std::string& where, std::size_t start, std::size_t end, char terminator, std::unordered_map* values = nullptr); bool MatchURI(const Template& uri_template, const std::string& uri, std::unordered_map* values = nullptr); } // namespace Template } // namespace URI