Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
Loading...
Searching...
No Matches
aria::GroupedList< T, Key, Source > Class Template Reference

#include <grouped_list.hpp>

Inheritance diagram for aria::GroupedList< T, Key, Source >:
[legend]

Public Types

using value_type = Group<T, Key>
using KeyOf = aria::inplace_function<Key(const T&), 32>
 Owning, heap-free key extractor (capacity 32 bytes).
using Signal = detail::ListSignal<Group<T, Key>>

Public Member Functions

 GroupedList (std::shared_ptr< Source > source, KeyOf key_of=default_key_of_())
 ~GroupedList ()=default
 GroupedList (const GroupedList &)=delete
GroupedListoperator= (const GroupedList &)=delete
std::size_t size () const
bool empty () const
std::shared_ptr< Group< T, Key > > at (std::size_t idx) const
std::vector< std::shared_ptr< Group< T, Key > > > snapshot () const
std::shared_ptr< Group< T, Key > > find (const Key &k) const
 Find a group by key (returns nullptr if no such group exists currently).

Member Typedef Documentation

◆ value_type

template<typename T, typename Key = T, typename Source = ObservableList<T>>
using aria::GroupedList< T, Key, Source >::value_type = Group<T, Key>

◆ KeyOf

template<typename T, typename Key = T, typename Source = ObservableList<T>>
using aria::GroupedList< T, Key, Source >::KeyOf = aria::inplace_function<Key(const T&), 32>

Owning, heap-free key extractor (capacity 32 bytes).

◆ Signal

template<typename T, typename Key = T, typename Source = ObservableList<T>>
using aria::GroupedList< T, Key, Source >::Signal = detail::ListSignal<Group<T, Key>>

Constructor & Destructor Documentation

◆ GroupedList() [1/2]

template<typename T, typename Key = T, typename Source = ObservableList<T>>
aria::GroupedList< T, Key, Source >::GroupedList ( std::shared_ptr< Source > source,
KeyOf key_of = default_key_of_() )
inline

◆ ~GroupedList()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
aria::GroupedList< T, Key, Source >::~GroupedList ( )
default

◆ GroupedList() [2/2]

template<typename T, typename Key = T, typename Source = ObservableList<T>>
aria::GroupedList< T, Key, Source >::GroupedList ( const GroupedList< T, Key, Source > & )
delete

Member Function Documentation

◆ operator=()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
GroupedList & aria::GroupedList< T, Key, Source >::operator= ( const GroupedList< T, Key, Source > & )
delete

◆ size()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
std::size_t aria::GroupedList< T, Key, Source >::size ( ) const
inlinenodiscard

◆ empty()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
bool aria::GroupedList< T, Key, Source >::empty ( ) const
inlinenodiscard

◆ at()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
std::shared_ptr< Group< T, Key > > aria::GroupedList< T, Key, Source >::at ( std::size_t idx) const
inlinenodiscard

◆ snapshot()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
std::vector< std::shared_ptr< Group< T, Key > > > aria::GroupedList< T, Key, Source >::snapshot ( ) const
inlinenodiscard

◆ find()

template<typename T, typename Key = T, typename Source = ObservableList<T>>
std::shared_ptr< Group< T, Key > > aria::GroupedList< T, Key, Source >::find ( const Key & k) const
inlinenodiscard

Find a group by key (returns nullptr if no such group exists currently).

Useful for adapters that want to render a fixed set of section headers.


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