Skip to main content

doing_ops/
lib.rs

1//! Domain operations for the doing CLI.
2//!
3//! This crate contains the core business logic that sits between the CLI layer
4//! and the data model. It operates on [`doing_taskpaper::Entry`] values and
5//! [`doing_config::Config`] settings without any knowledge of terminal I/O.
6//!
7//! # Modules
8//!
9//! - [`autotag`] — automatic tag assignment based on title keywords, synonyms,
10//!   and regex transforms.
11//! - [`backup`] — timestamped backup creation with path-hash isolation so
12//!   multiple doing files maintain independent histories.
13//! - [`extract_note`] — split raw entry text into a title and an optional note.
14//! - [`filter`] — composable entry filter pipeline (section, tags, search, date
15//!   range, count limit, sort order).
16//! - [`search`] — fuzzy, exact, pattern, and regex text matching against entries.
17//! - [`tag_filter`] — wildcard-aware tag inclusion/exclusion filtering.
18//! - [`tag_query`] — structured boolean query parser for tag expressions
19//!   (e.g. `"@done and not @flagged"`).
20//! - [`undo`] — undo/redo by rotating through backup history.
21
22pub mod autotag;
23pub mod backup;
24pub mod extract_note;
25pub mod filter;
26pub mod search;
27pub mod tag_filter;
28pub mod tag_query;
29pub mod undo;