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

Read-only byte view over SoA values. More...

#include <data_layout_policy.h>

Classes

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

Public Attributes

std::span< const 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_get< TDataLayout, ValueType >

Read-only byte view over SoA values.

Template Parameters
TDataLayoutSoA packing layout.
ValueTypeStored value type.

Constructor & Destructor Documentation

◆ data_view_policy_soa_get() [1/3]

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

Creates a read-only view over mutable bytes.

Parameters
dataBacking byte span.

◆ data_view_policy_soa_get() [2/3]

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

Creates a read-only view over bytes.

Parameters
dataBacking byte span.

◆ data_view_policy_soa_get() [3/3]

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

Creates a read-only view over a contiguous container.

Template Parameters
CContiguous container type.
Parameters
cBacking container.

Member Function Documentation

◆ data()

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

Returns the backing byte address.

Returns
Read-only byte pointer.

◆ get()

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

Returns a read-only span over one field.

Template Parameters
ItemField index.
Returns
Field span.

◆ operator[]()

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

Reconstructs a value by index.

Parameters
idxValue index.
Returns
Reconstructed value.

◆ size()

template<DataLayout TDataLayout, typename ValueType >
GAIA_NODISCARD auto gaia::mem::data_view_policy_soa_get< 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: