1#ifndef NEFORCE_TUI_DOM_STATE_HPP__
2#define NEFORCE_TUI_DOM_STATE_HPP__
13NEFORCE_BEGIN_NAMESPACE__
48 value_(_NEFORCE
move(initial)),
63 NEFORCE_NODISCARD
const T&
value() const noexcept {
return value_; }
69 NEFORCE_NODISCARD
const T&
operator*() const noexcept {
return value_; }
75 NEFORCE_NODISCARD
const T*
operator->() const noexcept {
return &value_; }
83 value_ = _NEFORCE
move(v);
104 value_ = _NEFORCE
move(v);
105 on_changed_.emit(value_);
127 return on_changed_.connect([fn = _NEFORCE
move(fn)](
const T& val) { fn(val); });
132 changed_signal on_changed_;
137 void notify_changed() {
138 on_changed_.emit(value_);
142 void schedule_render();
148NEFORCE_END_NAMESPACE__
connection on_change(function< void(const T &)> fn)
订阅值变化通知
state & operator=(T v)
整值替换
const T & operator*() const noexcept
读取当前值
const T * operator->() const noexcept
成员访问
signal< T > changed_signal
值变化信号类型
const T & value() const noexcept
读取当前值
void modify(function< void(T &)> fn)
就地修改
state(component_base *owner, strand &s, T initial)
构造函数
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素