Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::orm::field_accessor< T, typename > Class Template Reference

Template class for type-safe field access. More...

#include <entity.h>

Collaboration diagram for database::orm::field_accessor< T, typename >:
Collaboration graph

Public Member Functions

 field_accessor (T &value, const field_metadata &metadata)
 
T & get ()
 
const T & get () const
 
const field_metadatametadata () const
 
field_accessoroperator= (const T &value)
 
 operator T& ()
 
 operator const T & () const
 

Private Attributes

T & value_
 
const field_metadatametadata_
 

Detailed Description

template<typename T, typename = std::enable_if_t<is_field_type_v<T>>>
class database::orm::field_accessor< T, typename >

Template class for type-safe field access.

Definition at line 164 of file entity.h.

Constructor & Destructor Documentation

◆ field_accessor()

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
database::orm::field_accessor< T, typename >::field_accessor ( T & value,
const field_metadata & metadata )
inline
Examples
/home/runner/work/database_system/database_system/database/orm/entity.h.

Definition at line 167 of file entity.h.

168 : value_(value), metadata_(metadata) {}
const field_metadata & metadata_
Definition entity.h:184
const field_metadata & metadata() const
Definition entity.h:172

Member Function Documentation

◆ get() [1/2]

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
T & database::orm::field_accessor< T, typename >::get ( )
inline

◆ get() [2/2]

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
const T & database::orm::field_accessor< T, typename >::get ( ) const
inline

Definition at line 171 of file entity.h.

171{ return value_; }

References database::orm::field_accessor< T, typename >::value_.

◆ metadata()

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
const field_metadata & database::orm::field_accessor< T, typename >::metadata ( ) const
inline

◆ operator const T &()

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
database::orm::field_accessor< T, typename >::operator const T & ( ) const
inline

Definition at line 180 of file entity.h.

180{ return value_; }

References database::orm::field_accessor< T, typename >::value_.

◆ operator T&()

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
database::orm::field_accessor< T, typename >::operator T& ( )
inline

Definition at line 179 of file entity.h.

179{ return value_; }

References database::orm::field_accessor< T, typename >::value_.

◆ operator=()

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
field_accessor & database::orm::field_accessor< T, typename >::operator= ( const T & value)
inline
Examples
/home/runner/work/database_system/database_system/database/orm/entity.h.

Definition at line 174 of file entity.h.

174 {
175 value_ = value;
176 return *this;
177 }

References database::orm::field_accessor< T, typename >::value_.

Member Data Documentation

◆ metadata_

template<typename T , typename = std::enable_if_t<is_field_type_v<T>>>
const field_metadata& database::orm::field_accessor< T, typename >::metadata_
private

◆ value_


The documentation for this class was generated from the following file: