Skip to content

Commit

Permalink
Added std::list to Observed specializations.
Browse files Browse the repository at this point in the history
  • Loading branch information
5cript committed Jul 11, 2024
1 parent 97c000d commit 3b1d83c
Showing 1 changed file with 34 additions and 2 deletions.
36 changes: 34 additions & 2 deletions nui/include/nui/frontend/event_system/observed_value.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1114,6 +1114,38 @@ namespace Nui
return *this;
}
};
template <typename... Parameters>
class Observed<std::list<Parameters...>> : public ObservedContainer<std::list<Parameters...>>
{
public:
using ObservedContainer<std::list<Parameters...>>::ObservedContainer;
using ObservedContainer<std::list<Parameters...>>::operator=;
using ObservedContainer<std::list<Parameters...>>::operator->;
static constexpr auto isRandomAccess = false;

public:
Observed()
: ObservedContainer<std::list<Parameters...>>{RangeEventContext{0, true}}
{}
template <typename T = std::list<Parameters...>>
explicit Observed(T&& t)
: ObservedContainer<std::list<Parameters...>>{
std::forward<T>(t),
RangeEventContext{static_cast<long>(t.size()), true}}
{}

Observed<std::list<Parameters...>>& operator=(std::list<Parameters...> const& contained)
{
ObservedContainer<std::list<Parameters...>>::operator=(contained);
return *this;
}
Observed<std::list<Parameters...>>& operator=(std::list<Parameters...>&& contained)
{
ObservedContainer<std::list<Parameters...>>::operator=(std::move(contained));
return *this;
}
};

template <>
class Observed<void> : public ObservedBase
{
Expand Down Expand Up @@ -1165,8 +1197,8 @@ namespace Nui
return observedValue;
}
template <typename T>
inline auto operator--(ModifiableObserved<T>& observedValue, int)
-> Detail::PickFirst_t<T, decltype(std::declval<T>()--)>
inline auto
operator--(ModifiableObserved<T>& observedValue, int) -> Detail::PickFirst_t<T, decltype(std::declval<T>()--)>
{
auto tmp = observedValue.value();
--observedValue.value();
Expand Down

0 comments on commit 3b1d83c

Please sign in to comment.