|
Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
|
#include <mapped_list.hpp>
Public Types | |
| using | value_type = Target |
| Element type of the derived list — i.e. | |
| using | Mapper = aria::inplace_function<std::shared_ptr<Target>(const Source&), 32> |
| Owning, heap-free mapper handle (capacity 32 bytes). | |
| using | Signal = detail::ListSignal<Target> |
Public Member Functions | |
| MappedList (std::shared_ptr< SourceList > source, Mapper mapper, bool remap_on_change=false) | |
| Construct a MappedList. | |
| ~MappedList ()=default | |
| MappedList (const MappedList &)=delete | |
| MappedList & | operator= (const MappedList &)=delete |
| std::size_t | size () const |
| bool | empty () const |
| std::shared_ptr< Target > | at (std::size_t idx) const |
| std::vector< std::shared_ptr< Target > > | snapshot () const |
| using aria::MappedList< Source, Target, SourceList >::value_type = Target |
Element type of the derived list — i.e.
Target. This is what adapter / ListSource consumers care about.
| using aria::MappedList< Source, Target, SourceList >::Mapper = aria::inplace_function<std::shared_ptr<Target>(const Source&), 32> |
Owning, heap-free mapper handle (capacity 32 bytes).
| using aria::MappedList< Source, Target, SourceList >::Signal = detail::ListSignal<Target> |
|
inline |
Construct a MappedList.
| source | the upstream list to project from |
| mapper | Target(const Source&) — called once per source item on Insert / Replace / Reset (and also on ItemChanged when remap_on_change is true) |
| remap_on_change | if true, ItemChanged invalidates the slot and re-invokes the mapper; if false (default), ItemChanged propagates as ItemChanged on the existing Target and the Target identity is preserved |
|
default |
|
delete |
|
delete |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |