Gaia-ECS v1.0.0
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType > Struct Template Reference

Mutable byte view over SoA values. More...

#include <data_layout_policy.h>

Classes

struct  accessor
 Proxy used to assign one complete value. More...
 
struct  data_view_policy_idx_info
 Metadata for a selected field. More...
 

Public Types

using view_policy = data_view_policy_soa< TDataLayout, ValueType >
 Underlying storage policy.
 

Public Member Functions

 data_view_policy_soa_set (std::span< uint8_t > data)
 Creates a mutable view over bytes.
 
 data_view_policy_soa_set (std::span< const uint8_t > data)
 Creates a mutable view from a byte span.
 
template<typename C >
 data_view_policy_soa_set (const C &c)
 Creates a mutable view over a contiguous container.
 
GAIA_NODISCARD constexpr decltype(auto) operator[] (size_t idx) const noexcept
 Reconstructs a read-only value by index.
 
GAIA_NODISCARD constexpr auto operator[] (size_t idx) noexcept
 Returns a mutable proxy by index.
 
template<size_t Item>
GAIA_NODISCARD constexpr auto get () const noexcept
 Returns a read-only span over one field.
 
template<size_t Item>
GAIA_NODISCARD constexpr auto set () noexcept
 Returns a mutable span over one field.
 
GAIA_NODISCARD auto data () const noexcept
 Returns the backing byte address.
 
GAIA_NODISCARD auto size () const noexcept
 Returns the backing span size.
 

Public Attributes

std::span< uint8_t > m_data
 Raw data pointed to by the view policy.
 

Detailed Description

template<DataLayout TDataLayout, typename ValueType>
struct gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >

Mutable byte view over SoA values.

Template Parameters
TDataLayoutSoA packing layout.
ValueTypeStored value type.

Constructor & Destructor Documentation

◆ data_view_policy_soa_set() [1/3]

template<DataLayout TDataLayout, typename ValueType >
gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::data_view_policy_soa_set ( std::span< uint8_t >  data)
inline

Creates a mutable view over bytes.

Parameters
dataBacking byte span.

◆ data_view_policy_soa_set() [2/3]

template<DataLayout TDataLayout, typename ValueType >
gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::data_view_policy_soa_set ( std::span< const uint8_t >  data)
inline

Creates a mutable view from a byte span.

Parameters
dataBacking byte span whose constness is intentionally erased.

◆ data_view_policy_soa_set() [3/3]

template<DataLayout TDataLayout, typename ValueType >
template<typename C >
gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::data_view_policy_soa_set ( const C &  c)
inline

Creates a mutable view over a contiguous container.

Template Parameters
CContiguous container type.
Parameters
cBacking container.

Member Function Documentation

◆ data()

template<DataLayout TDataLayout, typename ValueType >
GAIA_NODISCARD auto gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::data ( ) const
inlinenoexcept

Returns the backing byte address.

Returns
Mutable byte pointer.

◆ get()

template<DataLayout TDataLayout, typename ValueType >
template<size_t Item>
GAIA_NODISCARD constexpr auto gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::get ( ) const
inlineconstexprnoexcept

Returns a read-only span over one field.

Template Parameters
ItemField index.
Returns
Field span.

◆ operator[]() [1/2]

template<DataLayout TDataLayout, typename ValueType >
GAIA_NODISCARD constexpr decltype(auto) gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::operator[] ( size_t  idx) const
inlineconstexprnoexcept

Reconstructs a read-only value by index.

Parameters
idxValue index.
Returns
Reconstructed value.

◆ operator[]() [2/2]

template<DataLayout TDataLayout, typename ValueType >
GAIA_NODISCARD constexpr auto gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::operator[] ( size_t  idx)
inlineconstexprnoexcept

Returns a mutable proxy by index.

Parameters
idxValue index.
Returns
Mutable value proxy.

◆ set()

template<DataLayout TDataLayout, typename ValueType >
template<size_t Item>
GAIA_NODISCARD constexpr auto gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::set ( )
inlineconstexprnoexcept

Returns a mutable span over one field.

Template Parameters
ItemField index.
Returns
Field span.

◆ size()

template<DataLayout TDataLayout, typename ValueType >
GAIA_NODISCARD auto gaia::mem::data_view_policy_soa_set< TDataLayout, ValueType >::size ( ) const
inlinenoexcept

Returns the backing span size.

Returns
Value capacity encoded by the span.

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