#pragma once #include "utility.hpp" #include #include #include #include #include namespace crow { enum class ParamType { INT, UINT, DOUBLE, STRING, PATH, MAX }; struct RoutingParams { std::vector intParams; std::vector uintParams; std::vector doubleParams; std::vector stringParams; void debugPrint() const { std::cerr << "RoutingParams" << std::endl; for (auto i : intParams) { std::cerr << i << ", "; } std::cerr << std::endl; for (auto i : uintParams) { std::cerr << i << ", "; } std::cerr << std::endl; for (auto i : doubleParams) { std::cerr << i << ", "; } std::cerr << std::endl; for (const std::string& i : stringParams) { std::cerr << i << ", "; } std::cerr << std::endl; } template T get(unsigned) const; }; template <> inline int64_t RoutingParams::get(unsigned index) const { return intParams[index]; } template <> inline uint64_t RoutingParams::get(unsigned index) const { return uintParams[index]; } template <> inline double RoutingParams::get(unsigned index) const { return doubleParams[index]; } template <> inline std::string RoutingParams::get(unsigned index) const { return stringParams[index]; } } // namespace crow