3 #include <ossia/detail/config.hpp>
27 OSSIA_EXPORT
friend bool operator==(
const state& lhs,
const state& rhs);
28 OSSIA_EXPORT
friend bool operator!=(
const state& lhs,
const state& rhs);
30 auto begin() {
return m_children.begin(); }
31 auto end() {
return m_children.end(); }
32 auto begin()
const {
return m_children.begin(); }
33 auto end()
const {
return m_children.end(); }
34 auto cbegin()
const {
return m_children.cbegin(); }
35 auto cend()
const {
return m_children.cend(); }
37 auto& children()
const {
return m_children; }
39 std::size_t size()
const;
47 template <
class Optional_T>
48 auto add(Optional_T&& opt)
49 -> decltype(std::declval<
typename std::remove_reference_t<Optional_T>::value_type>(),
void())
52 add(*std::forward<Optional_T>(opt));
56 void remove(std::vector<state_element>::iterator e);
57 void remove(std::vector<state_element>::const_iterator e);
59 void reserve(std::size_t);
63 std::vector<state_element> m_children;
66 inline auto begin(
state& s)
70 inline auto begin(
const state& s)
74 inline auto end(state& s)
78 inline auto end(
const state& s)
The state class.
Definition: editor/state/state.hpp:25
void launch(state_element &e)
launch Launch a state_element
Definition: state_element.cpp:18
void flatten_and_filter(ossia::state &state, const state_element &element)
append each message of the state to the current state in order to eliminate address redundancy
Definition: editor/state/state.cpp:77
ossia::nullable_variant< message, state, piecewise_message, piecewise_vec_message< 2 >, piecewise_vec_message< 3 >, piecewise_vec_message< 4 > > state_element
Definition: state_element_fwd.hpp:28
void merge_flatten_and_filter(ossia::state &state, const state_element &element)
These will also merge single addresses.
Definition: editor/state/state.cpp:87