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

#include <filtered_list.hpp>

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

Public Types

using value_type = T
using Predicate = aria::inplace_function<bool(const T&), 32>
 Owning, heap-free predicate handle.
using Signal = detail::ListSignal<T>

Public Member Functions

 FilteredList (std::shared_ptr< Source > source, Predicate predicate)
 ~FilteredList ()=default
 FilteredList (const FilteredList &)=delete
FilteredListoperator= (const FilteredList &)=delete
std::size_t size () const
bool empty () const
std::shared_ptr< T > at (std::size_t derived_index) const
std::vector< std::shared_ptr< T > > snapshot () const
std::optional< std::size_t > source_index_of (std::size_t derived_index) const
void set_predicate (Predicate new_predicate)

Member Typedef Documentation

◆ value_type

template<typename T, typename Source = ObservableList<T>>
using aria::FilteredList< T, Source >::value_type = T

◆ Predicate

template<typename T, typename Source = ObservableList<T>>
using aria::FilteredList< T, Source >::Predicate = aria::inplace_function<bool(const T&), 32>

Owning, heap-free predicate handle.

Captures up to 32 bytes; larger captures are a compile-time error (by design — derived list hot paths must never allocate behind the user's back).

◆ Signal

template<typename T, typename Source = ObservableList<T>>
using aria::FilteredList< T, Source >::Signal = detail::ListSignal<T>

Constructor & Destructor Documentation

◆ FilteredList() [1/2]

template<typename T, typename Source = ObservableList<T>>
aria::FilteredList< T, Source >::FilteredList ( std::shared_ptr< Source > source,
Predicate predicate )
inline

◆ ~FilteredList()

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

◆ FilteredList() [2/2]

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

Member Function Documentation

◆ operator=()

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

◆ size()

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

◆ empty()

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

◆ at()

template<typename T, typename Source = ObservableList<T>>
std::shared_ptr< T > aria::FilteredList< T, Source >::at ( std::size_t derived_index) const
inlinenodiscard

◆ snapshot()

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

◆ source_index_of()

template<typename T, typename Source = ObservableList<T>>
std::optional< std::size_t > aria::FilteredList< T, Source >::source_index_of ( std::size_t derived_index) const
inlinenodiscard

◆ set_predicate()

template<typename T, typename Source = ObservableList<T>>
void aria::FilteredList< T, Source >::set_predicate ( Predicate new_predicate)
inline

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