45 lines
915 B
C
45 lines
915 B
C
|
|
/**
|
||
|
|
* @file mix_cc/sql/statement.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>
|
||
|
|
namespace mix_cc {
|
||
|
|
namespace sql {
|
||
|
|
|
||
|
|
struct statement_t {};
|
||
|
|
|
||
|
|
template <typename PrevStatement>
|
||
|
|
struct prev_statement_t {
|
||
|
|
explicit constexpr prev_statement_t(PrevStatement prev_st)
|
||
|
|
: prev_st_(prev_st) {}
|
||
|
|
|
||
|
|
constexpr auto parse_prev() {
|
||
|
|
return hana::flatten(
|
||
|
|
hana::make_tuple(prev_st_.parse_prev(), hana::make_tuple(prev_st_)));
|
||
|
|
}
|
||
|
|
|
||
|
|
protected:
|
||
|
|
PrevStatement prev_st_;
|
||
|
|
};
|
||
|
|
|
||
|
|
template <>
|
||
|
|
struct prev_statement_t<void> {
|
||
|
|
constexpr prev_statement_t() {}
|
||
|
|
constexpr auto parse_prev() { return hana::make_tuple(); }
|
||
|
|
};
|
||
|
|
|
||
|
|
template <typename Tp>
|
||
|
|
constexpr auto get_value(Tp val) {
|
||
|
|
return val;
|
||
|
|
}
|
||
|
|
} // namespace sql
|
||
|
|
} // namespace mix_cc
|