Skip to main content

undoredo/
lib.rs

1// SPDX-FileCopyrightText: 2025 undoredo contributors
2//
3// SPDX-License-Identifier: MIT OR Apache-2.0
4
5#![doc(html_root_url = "https://docs.rs/undoredo")]
6#![doc = include_str!("../README.md")]
7#![cfg_attr(docsrs, doc = "\n## Feature flags\n")]
8#![cfg_attr(docsrs, doc = document_features::document_features!())]
9#![cfg_attr(docsrs, feature(doc_cfg))]
10#![deny(missing_docs)]
11#![forbid(unsafe_code)]
12#![no_std]
13
14#[cfg(feature = "std")]
15extern crate std;
16
17// No feature for `alloc` because it would be always enabled anyway.
18pub extern crate alloc;
19
20/// Type aliases for full and half deltas.
21pub mod aliases;
22
23mod delta;
24mod edit;
25mod history_tree;
26mod recorder;
27mod shared_history_tree;
28mod snapshot;
29mod undoredo;
30
31pub use crate::delta::*;
32pub use crate::edit::{ApplyEdit, CmdEdit, ExtractEdit, RevertEdit};
33pub use crate::history_tree::{HistoryTree, HistoryTreeNode, HistoryTreeNodeId};
34pub use crate::recorder::{ExtendDelta, FlushDelta, Recorder, ResetDelta};
35pub use crate::shared_history_tree::{
36    SharedHistoryTree, SharedHistoryTreeCursor, SharedHistoryTreeNode, SharedHistoryTreeNodeId,
37};
38pub use crate::snapshot::Snapshot;
39pub use crate::undoredo::UndoRedo;
40pub use maplike;
41
42#[cfg(feature = "derive")]
43#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
44pub use undoredo_derive::ApplyDelta;
45#[cfg(feature = "derive")]
46#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
47pub use undoredo_derive::Delta;
48#[cfg(feature = "derive")]
49#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
50pub use undoredo_derive::ExtendDelta;
51#[cfg(feature = "derive")]
52#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
53pub use undoredo_derive::FlushDelta;
54#[cfg(feature = "derive")]
55#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
56pub use undoredo_derive::HalfDelta;
57#[cfg(feature = "derive")]
58#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
59pub use undoredo_derive::MergeDeltas;
60#[cfg(feature = "derive")]
61#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
62pub use undoredo_derive::ResetDelta;