gtopt::InputTraits struct

Input data access traits.

Inherits from UidTraits and adds input-specific functionality

Base classes

struct UidTraits
Traits for UID-based data access patterns.

Derived classes

template<typename Type, typename... Uid>
class OptSchedule
template<typename Type, typename... Uid>
class OptSchedule
template<typename Type, typename... Uid>
class OptSchedule
template<typename Type, typename... Uid>
class Schedule
template<typename Type, typename Map Map, typename FSched, typename... Uid>
struct ArrayIndexTraits
class InputContext
template<typename Type, typename... Uid>
class OptSchedule
template<typename Type, typename... Uid>
class Schedule

Public types

template<typename... Uid>
using array_table_vector_uid_idx_t = std::tuple<array_uid_idx_map_t<Uid...>, table_uid_idx_map_t<Uid...>, vector_uid_idx_t<Uid...>>
template<typename... Uid>
using array_uid_idx_map_t = base_map_t<CFNameUid, arrow_array_uid_idx_t<Uid...>>
template<typename... Uid>
using array_vector_uid_idx_v = std::variant<arrow_array_uid_idx_t<Uid...>, vector_uid_idx_t<Uid...>>
template<typename... Uid>
using arrow_array_uid_idx_t = std::pair<ArrowChunkedArray, ArrowUidIdx<Uid...>>
template<typename... Uid>
using arrow_table_uid_idx_t = std::tuple<ArrowTable, ArrowUidIdx<Uid...>>
template<typename... Uid>
using ArrowUidIdx = UidToArrowIdx<Uid...>::UidIdx
template<typename Key, typename Value Value>
using base_map_t = gtopt::flat_map<Key, Value>
using CFName = std::tuple<ClassNameType, FieldNameType>
using CFNameUid = std::tuple<ClassNameType, FieldNameType, Uid>
using ClassNameType = std::string_view
using FieldNameType = std::string_view
template<typename... Uid>
using idx_key_t = UidToVectorIdx<Uid...>::IndexKey
template<typename value_type, typename... Uid>
using idx_vector_t = mvector_traits<value_type, idx_key_t<Uid...>>::vector_type
template<typename... Uid>
using table_uid_idx_map_t = base_map_t<CFName, arrow_table_uid_idx_t<Uid...>>
template<typename... Uid>
using vector_uid_idx_t = VectorUidIdx<Uid...>
template<typename... Uid>
using VectorUidIdx = UidToVectorIdx<Uid...>::UidIdx

Public static functions

template<typename Type, typename RType RType = Type, typename FSched, typename UidIdx, typename AccessOper AccessOper, typename... Uid>
static auto access_sched(const FSched& sched, const UidIdx& uid_idx, AccessOper access_oper, Uid... uid) -> RType -> constexpr auto
template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static auto at_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> Type -> constexpr auto
template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static auto optval_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> std::optional< Type > -> constexpr auto

Typedef documentation

template<typename... Uid>
using gtopt::InputTraits::array_table_vector_uid_idx_t = std::tuple<array_uid_idx_map_t<Uid...>, table_uid_idx_map_t<Uid...>, vector_uid_idx_t<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::array_uid_idx_map_t = base_map_t<CFNameUid, arrow_array_uid_idx_t<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::array_vector_uid_idx_v = std::variant<arrow_array_uid_idx_t<Uid...>, vector_uid_idx_t<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::arrow_array_uid_idx_t = std::pair<ArrowChunkedArray, ArrowUidIdx<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::arrow_table_uid_idx_t = std::tuple<ArrowTable, ArrowUidIdx<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::ArrowUidIdx = UidToArrowIdx<Uid...>::UidIdx

template<typename Key, typename Value Value>
using gtopt::InputTraits::base_map_t = gtopt::flat_map<Key, Value>

using gtopt::InputTraits::CFName = std::tuple<ClassNameType, FieldNameType>

using gtopt::InputTraits::CFNameUid = std::tuple<ClassNameType, FieldNameType, Uid>

using gtopt::InputTraits::ClassNameType = std::string_view

using gtopt::InputTraits::FieldNameType = std::string_view

template<typename... Uid>
using gtopt::InputTraits::idx_key_t = UidToVectorIdx<Uid...>::IndexKey

template<typename value_type, typename... Uid>
using gtopt::InputTraits::idx_vector_t = mvector_traits<value_type, idx_key_t<Uid...>>::vector_type

template<typename... Uid>
using gtopt::InputTraits::table_uid_idx_map_t = base_map_t<CFName, arrow_table_uid_idx_t<Uid...>>

template<typename... Uid>
using gtopt::InputTraits::vector_uid_idx_t = VectorUidIdx<Uid...>

template<typename... Uid>
using gtopt::InputTraits::VectorUidIdx = UidToVectorIdx<Uid...>::UidIdx