Lightweight 0.1.0
|
Represents a one-to-one relationship. More...
#include <BelongsTo.hpp>
Public Types | |
using | ReferencedRecord = MemberClassType< decltype(TheReferencedField)> |
Represents the record type of the other field. | |
using | ValueType = typename std::remove_cvref_t< decltype(std::declval< ReferencedRecord >().*ReferencedField)>::ValueType |
Represents the column type of the foreign key, matching the primary key of the other record. | |
Public Member Functions | |
template<typename... S> requires std::constructible_from<ValueType, S...> | |
constexpr | BelongsTo (S &&... value) noexcept |
constexpr | BelongsTo (ReferencedRecord const &other) noexcept |
constexpr | BelongsTo (SelfType const &other) noexcept |
constexpr | BelongsTo (SelfType &&other) noexcept |
BelongsTo & | operator= (SqlNullType) noexcept |
BelongsTo & | operator= (ReferencedRecord &other) |
BelongsTo & | operator= (SelfType const &other) |
LIGHTWEIGHT_FORCE_INLINE constexpr void | SetModified (bool value) noexcept |
Marks the field as modified or unmodified. | |
LIGHTWEIGHT_FORCE_INLINE constexpr bool | IsModified () const noexcept |
Checks if the field is modified. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ValueType const & | Value () const noexcept |
Retrieves the reference to the value of the field. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ValueType & | MutableValue () noexcept |
Retrieves the mutable reference to the value of the field. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord & | Record () |
Retrieves a record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord const & | Record () const |
Retrieves an immutable reference to the record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr bool | IsLoaded () const noexcept |
Checks if the record is loaded into memory. | |
LIGHTWEIGHT_FORCE_INLINE void | Unload () noexcept |
Unloads the record from memory. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord & | operator* () noexcept |
Retrieves the record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord const & | operator* () const noexcept |
Retrieves the record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord * | operator-> () |
Retrieves the record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord const * | operator-> () const |
Retrieves the record from the relationship. | |
LIGHTWEIGHT_FORCE_INLINE constexpr bool | operator! () const noexcept |
Checks if the field value is NULL. | |
LIGHTWEIGHT_FORCE_INLINE constexpr | operator bool () const noexcept |
Checks if the field value is not NULL. | |
LIGHTWEIGHT_FORCE_INLINE constexpr ReferencedRecord & | EmplaceRecord () |
Emplaces a record into the relationship. This will mark the relationship as loaded. | |
LIGHTWEIGHT_FORCE_INLINE void | BindOutputColumn (SQLSMALLINT outputIndex, SqlStatement &stmt) |
template<auto OtherReferencedField> | |
std::weak_ordering | operator<=> (BelongsTo< OtherReferencedField > const &other) const noexcept |
template<detail::FieldElementType T, PrimaryKey IsPrimaryKeyValue = PrimaryKey::No> | |
std::weak_ordering | operator<=> (Field< T, IsPrimaryKeyValue > const &other) const noexcept |
template<auto OtherReferencedField> | |
bool | operator== (BelongsTo< OtherReferencedField > const &other) const noexcept |
template<auto OtherReferencedField> | |
bool | operator!= (BelongsTo< OtherReferencedField > const &other) const noexcept |
template<detail::FieldElementType T, PrimaryKey IsPrimaryKeyValue = PrimaryKey::No> | |
bool | operator== (Field< T, IsPrimaryKeyValue > const &other) const noexcept |
template<detail::FieldElementType T, PrimaryKey IsPrimaryKeyValue = PrimaryKey::No> | |
bool | operator!= (Field< T, IsPrimaryKeyValue > const &other) const noexcept |
void | SetAutoLoader (Loader loader) noexcept |
Used internally to configure on-demand loading of the record. | |
Static Public Attributes | |
static constexpr auto | ReferencedField = TheReferencedField |
The field in the other record that references the current record. | |
static constexpr std::string_view | ColumnNameOverride |
If not an empty string, this value will be used as the column name in the database. | |
static constexpr auto | IsOptional = true |
static constexpr auto | IsMandatory = !IsOptional |
static constexpr auto | IsPrimaryKey = false |
static constexpr auto | IsAutoIncrementPrimaryKey = false |
Represents a one-to-one relationship.
The TheReferencedField
parameter is the field in the other record that references the current record, in the form of &OtherRecord::Field
. Other Field must be a primary key.
TheReferencedField | The field in the other record that references the current record. |
ColumnNameOverrideString | If not an empty string, this value will be used as the column name in the database. |
Definition at line 41 of file BelongsTo.hpp.
using BelongsTo< TheReferencedField, ColumnNameOverrideString >::ReferencedRecord = MemberClassType<decltype(TheReferencedField)> |
Represents the record type of the other field.
Definition at line 58 of file BelongsTo.hpp.
using BelongsTo< TheReferencedField, ColumnNameOverrideString >::ValueType = typename std::remove_cvref_t<decltype(std::declval<ReferencedRecord>().*ReferencedField)>::ValueType |
Represents the column type of the foreign key, matching the primary key of the other record.
Definition at line 64 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Definition at line 73 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Definition at line 78 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Definition at line 85 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Definition at line 94 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 104 of file BelongsTo.hpp.
|
inline |
Definition at line 115 of file BelongsTo.hpp.
|
inline |
Definition at line 126 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Marks the field as modified or unmodified.
Definition at line 143 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Checks if the field is modified.
Definition at line 146 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Retrieves the reference to the value of the field.
Definition at line 149 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Retrieves the mutable reference to the value of the field.
Definition at line 152 of file BelongsTo.hpp.
|
inlineconstexpr |
Retrieves a record from the relationship.
Definition at line 155 of file BelongsTo.hpp.
|
inlineconstexpr |
Retrieves an immutable reference to the record from the relationship.
Definition at line 158 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Checks if the record is loaded into memory.
Definition at line 161 of file BelongsTo.hpp.
|
inlinenoexcept |
Unloads the record from memory.
Definition at line 164 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Retrieves the record from the relationship.
Definition at line 167 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Retrieves the record from the relationship.
Definition at line 170 of file BelongsTo.hpp.
|
inlineconstexpr |
Retrieves the record from the relationship.
Definition at line 173 of file BelongsTo.hpp.
|
inlineconstexpr |
Retrieves the record from the relationship.
Definition at line 176 of file BelongsTo.hpp.
|
inlineconstexprnoexcept |
Checks if the field value is NULL.
Definition at line 179 of file BelongsTo.hpp.
|
inlineexplicitconstexprnoexcept |
Checks if the field value is not NULL.
Definition at line 182 of file BelongsTo.hpp.
|
inlineconstexpr |
Emplaces a record into the relationship. This will mark the relationship as loaded.
Definition at line 187 of file BelongsTo.hpp.
|
inline |
Definition at line 194 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 200 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 206 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 212 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 218 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 224 of file BelongsTo.hpp.
|
inlinenoexcept |
Definition at line 230 of file BelongsTo.hpp.
|
inlinenoexcept |
Used internally to configure on-demand loading of the record.
Definition at line 241 of file BelongsTo.hpp.
|
staticconstexpr |
The field in the other record that references the current record.
Definition at line 47 of file BelongsTo.hpp.
|
staticconstexpr |
If not an empty string, this value will be used as the column name in the database.
Definition at line 50 of file BelongsTo.hpp.
|
staticconstexpr |
Definition at line 66 of file BelongsTo.hpp.
|
staticconstexpr |
Definition at line 67 of file BelongsTo.hpp.
|
staticconstexpr |
Definition at line 68 of file BelongsTo.hpp.
|
staticconstexpr |
Definition at line 69 of file BelongsTo.hpp.