49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
/**
|
|
* @file mix_cc/sql/column.h
|
|
* @brief 列信息
|
|
* @author Cat (null.null.null@qq.com)
|
|
* @version 0.1
|
|
* @date 2021-09-17
|
|
*
|
|
* Copyright: Baosight Co. Ltd.
|
|
* DO NOT COPY/USE WITHOUT PERMISSION
|
|
*
|
|
*/
|
|
#pragma once
|
|
#include <mix_cc/sql/public.h>
|
|
#include <mix_cc/sql/condition.h>
|
|
#include <mix_cc/sql/value.h>
|
|
|
|
namespace mix_cc {
|
|
namespace sql {
|
|
template <typename Tp, typename Name>
|
|
struct column_t {
|
|
using name_type = Name;
|
|
using value_type = Tp;
|
|
name_type col_name;
|
|
|
|
constexpr auto operator<(Tp val) {
|
|
return condition_t(col_name, op::compare_t::lt, val);
|
|
}
|
|
|
|
constexpr auto operator>(Tp val) {
|
|
return condition_t(col_name, op::compare_t::gt, val);
|
|
}
|
|
|
|
constexpr auto operator==(Tp val) {
|
|
return condition_t(col_name, op::compare_t::eq, val);
|
|
}
|
|
constexpr auto like(Tp val) {
|
|
return condition_t(col_name, op::compare_t::like, val);
|
|
}
|
|
|
|
constexpr auto operator=(Tp val) { return value_t(col_name, val); }
|
|
};
|
|
|
|
template <typename Tp, typename Name>
|
|
constexpr column_t<Tp, Name> make_column_c(Name&& col_name) {
|
|
return column_t<Tp, Name>{col_name};
|
|
}
|
|
} // namespace sql
|
|
} // namespace mix_cc
|