journalmap 0.1.0

Journaling datatypes for easy undo, redo & version control
Documentation
#![doc = include_str!("../README.md")]

mod journalmap;
mod journalvec;

pub use journalmap::JournalMap;
pub use journalmap::JournalMapJournal;
pub use journalvec::JournalVec;
pub use journalvec::JournalVecJournal;

#[cfg(feature = "serde")]
use serde::Deserialize;
#[cfg(feature = "serde")]
use serde::Serialize;

#[derive(Debug)]
pub enum JournalError<T> {
    /// Error thrown when a tag already exists in a journal.
    TagExists { tag: T },
}

#[derive(Clone, Copy)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub(crate) struct Tag<T> {
    tag: T,
}