23 concept Undoable = std::destructible<T>
and std::copy_constructible<T>;
41 UID id()
const {
return id_; }
53 template<
typename...
Args>
54 requires std::constructible_from<
T,
Args&&...>
60 const T&
value()
const {
return value_; }
74 data_{std::
move(data)}
79 UID id()
const {
return data_->id(); }
83 std::shared_ptr<const detail::UndoRedoEntryMetadata> data_;
90 template<
typename...
Args>
91 requires std::constructible_from<
T,
Args&&...>
154 template<
typename...
Args>
155 requires std::constructible_from<
T,
Args&&...>
Definition c_string_view.h:12
Definition undo_redo.h:104
virtual void impl_copy_assign_scratch_from_commit(const UndoRedoEntryBase &)=0
const UndoRedoEntryBase & redo_entry_at(size_t pos) const
UndoRedoBase(UndoRedoEntryBase initial_commit)
void commit_scratch(std::string_view commit_message)
const UndoRedoEntryBase & undo_entry_at(size_t pos) const
size_t num_undo_entries() const
const UndoRedoEntryBase & head() const
size_t num_redo_entries() const
UndoRedoBase(UndoRedoBase &&) noexcept
virtual UndoRedoEntryBase impl_construct_commit_from_scratch(std::string_view commit_message)=0
UndoRedoBase(const UndoRedoBase &)
Definition undo_redo.h:71
CStringView message() const
Definition undo_redo.h:80
UndoRedoEntryBase(std::shared_ptr< const detail::UndoRedoEntryMetadata > data)
Definition undo_redo.h:73
const detail::UndoRedoEntryMetadata & metadata() const
Definition undo_redo.h:77
UID id() const
Definition undo_redo.h:79
Definition undo_redo.h:88
UndoRedoEntry(std::string_view message, Args &&... args)
Definition undo_redo.h:92
const T & value() const
Definition undo_redo.h:96
Definition undo_redo.h:152
const UndoRedoEntry< T > & undo_entry_at(size_t pos) const
Definition undo_redo.h:165
const T & scratch() const
Definition undo_redo.h:161
UndoRedoEntryBase impl_construct_commit_from_scratch(std::string_view commit_message) final
Definition undo_redo.h:176
UndoRedo(Args &&... args)
Definition undo_redo.h:156
void impl_copy_assign_scratch_from_commit(const UndoRedoEntryBase &commit) final
Definition undo_redo.h:181
T & upd_scratch()
Definition undo_redo.h:163
const UndoRedoEntry< T > & redo_entry_at(size_t pos) const
Definition undo_redo.h:170
Definition undo_redo.h:51
const T & value() const
Definition undo_redo.h:60
UndoRedoEntryData(std::string_view message, Args &&... args)
Definition undo_redo.h:55
Definition undo_redo.h:29
UndoRedoEntryMetadata(const UndoRedoEntryMetadata &)=default
UndoRedoEntryMetadata(UndoRedoEntryMetadata &&) noexcept=default
CStringView message() const
Definition undo_redo.h:42
UndoRedoEntryMetadata(std::string_view message)
Definition undo_redo.h:31
Definition undo_redo.h:23
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56
and
Definition algorithms.h:158