0.14.0
Rework header structure and rework observers
- Add
ureact::happened
adaptor - BREAKING! Big structure update
Rootureact
folder become clearer (6 headers vs 14) andureact/adaptor
folder now mostly contain only so named adaptors in each header.- move
ureact/default_context.hpp
content intoureact/context.hpp
it contains a single function, and it is unconditionally included
inureact/signal.hpp
andureact/events.hpp
anyway - move
ureact/temp_signal.hpp
intoureact/detail
because it is not intended to be included and used by library user - move
ureact/has_changed.hpp
intoureact/detail
because it is not intended to be included and used by library user. User
can define its ownhas_changed
overload, buthas_changed.hpp
is not
needed to do so. - move some headers that are not useful by themselves in a
newureact/utility
directory. Namely:ureact/unit.hpp
ureact/type_traits.hpp
ureact/signal_pack.hpp
ureact/event_range.hpp
ureact/event_emitter.hpp
- extract
ureact::join_with
fromureact/adaptor/join.hpp
toureact/adaptor/join_with.hpp
- extract
ureact::changed_to
fromureact/adaptor/changed.hpp
toureact/adaptor/changed_to.hpp
- extract
ureact::keys
andureact::values
fromureact/adaptor/elements.hpp
toureact/adaptor/keys.hpp
andureact/adaptor/values.hpp
- move
- BREAKING! #120 Rework observers
- observable_node is no longer owns observers, and it is removed at all (
node_base is used instead) - observer nodes own their subjects
- scoped_observer is removed
- observer owns its observer node and nothing else
- tap nodes are introduced to own both observer and observed node
- result of observe should no longer discarded for both L-value and R-value
subjects - See #120 for examples and problem description
- observable_node is no longer owns observers, and it is removed at all (
- #113 Add observe_policy, so even current signal values can be notified if
needed