mod annotation;
mod bookmark;
mod diff;
mod evolog;
mod log;
mod operation;
mod push;
mod resolve;
mod status;
mod tag;
mod workspace;
pub use bookmark::parse_bookmark_list;
pub use evolog::parse_evolog;
pub use push::{
PushPreviewAction, PushPreviewResult, SkippedRef, parse_push_dry_run, parse_push_skipped,
};
pub use tag::parse_tag_list;
pub use workspace::parse_workspace_list;
#[cfg(test)]
mod tests;
use regex::Regex;
use std::sync::LazyLock;
static ANNOTATE_LINE_REGEX: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"^(\S+)\t(\S+)\s+(.+?)\s+(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+(\d+):\s?(.*)$")
.expect("Invalid annotate line regex")
});
static RESOLVE_LIST_REGEX: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"^(.+?)\s{2,}(\d+-sided\s+conflict)$").expect("Invalid resolve list regex")
});
pub struct Parser;