/** * @file mix_cc/sql/condition.h * @brief 查询条件 * @author Cat (null.null.null@qq.com) * @version 0.1 * @date 2021-07-10 * * Company: Baosight Co. Ltd. * DO NOT COPY/USE WITHOUT PERMISSION * */ #pragma once #include #include #include namespace mix_cc { namespace sql { template struct condition_t { using comp_t = Comp; using value_type = Tp; private: Name col_name_; Comp comp_; value_type value_; public: constexpr condition_t(Name col, Comp comp, value_type value) : col_name_(col), comp_(comp), value_(value) {} ~condition_t() {} constexpr auto get_str() { std::string value_str; if constexpr (std::is_integral_v || std::is_floating_point_v) { value_str = boost::str(boost::format("%1%") % value_); } else { value_str = boost::str(boost::format("%2%%1%%2%") % value_ % '\''); } return std::string(col_name_.c_str()) + " " + comp_.c_str() + " " + value_str; } }; } // namespace sql } // namespace mix_cc