49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#include "matador/object/constraint.hpp"
|
|
|
|
namespace matador::object {
|
|
constraint::constraint(std::string name)
|
|
: name_(std::move(name)) {}
|
|
|
|
const std::string & constraint::name() const {
|
|
return name_;
|
|
}
|
|
|
|
constraint_builder & constraint_builder::constraint(std::string name) {
|
|
constraint_name = std::move(name);
|
|
return *this;
|
|
}
|
|
|
|
constraint_builder & constraint_builder::primary_key(std::string name) {
|
|
column_name = std::move(name);
|
|
options_ |= utils::constraints::PrimaryKey;
|
|
return *this;
|
|
}
|
|
|
|
constraint_builder & constraint_builder::foreign_key(std::string name) {
|
|
column_name = std::move(name);
|
|
options_ |= utils::constraints::ForeignKey;
|
|
return *this;
|
|
}
|
|
|
|
constraint_builder & constraint_builder::references(std::string table, std::string column) {
|
|
ref_table_name = std::move(table);
|
|
ref_column_name = std::move(column);
|
|
|
|
return *this;
|
|
}
|
|
|
|
constraint_builder::operator class constraint() const {
|
|
class constraint c;
|
|
c.name_ = constraint_name;
|
|
c.options_ = options_;
|
|
c.ref_column_name_ = ref_column_name;
|
|
c.ref_table_name_ = ref_table_name;
|
|
return {};
|
|
}
|
|
|
|
constraint_builder constraint(std::string name) {
|
|
constraint_builder builder;
|
|
return builder.constraint(std::move(name));
|
|
}
|
|
}
|