#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)); } }