pace_core/
lib.rs

1//! # Pace Core
2
3pub(crate) mod commands;
4pub(crate) mod config;
5pub(crate) mod domain;
6pub(crate) mod error;
7pub(crate) mod service;
8pub(crate) mod storage;
9pub(crate) mod template;
10pub(crate) mod util;
11
12// Constants
13pub mod constants {
14    pub const PACE_APP_NAME: &str = "pace";
15    pub const PACE_CORE_VERSION: &str = env!("CARGO_PKG_VERSION");
16    pub const PACE_CONFIG_FILENAME: &str = "pace.toml";
17    pub const PACE_ACTIVITY_LOG_FILENAME: &str = "activities.pace.toml";
18    pub const PACE_DOCS_URL: &str = "https://pace.cli.rs/docs";
19    pub const PACE_DEV_DOCS_URL: &str = "https://pace.cli.rs/dev-docs";
20    pub const PACE_CONFIG_DOCS_URL: &str =
21        "https://github.com/pace-rs/pace/blob/main/config/README.md";
22}
23
24// Re-export commonly used external crates
25pub use merge;
26pub use toml;
27
28pub mod prelude {
29    // Public Prelude API
30    pub use crate::{
31        commands::{
32            adjust::AdjustCommandOptions,
33            begin::BeginCommandOptions,
34            docs::DocsCommandOptions,
35            end::EndCommandOptions,
36            hold::{HoldCommandOptions, HoldOptions},
37            now::NowCommandOptions,
38            reflect::{ExpensiveFlags, ReflectCommandOptions},
39            resume::{ResumeCommandOptions, ResumeOptions},
40            DeleteOptions, EndOptions, KeywordOptions, UpdateOptions,
41        },
42        config::{
43            find_root_config_file_path, find_root_project_file, get_activity_log_paths,
44            get_config_paths, get_home_activity_log_path, get_home_config_path,
45            ActivityLogFormatKind, ActivityLogStorageKind, AutoArchivalConfig, DatabaseConfig,
46            ExportConfig, GeneralConfig, InboxConfig, PaceConfig, PomodoroConfig,
47            ReflectionsConfig,
48        },
49        domain::{
50            activity::{
51                Activity, ActivityEndOptions, ActivityGroup, ActivityGuid, ActivityItem,
52                ActivityKind, ActivityKindOptions, ActivitySession,
53            },
54            activity_log::ActivityLog,
55            category::split_category_by_category_separator,
56            filter::{ActivityFilterKind, FilterOptions, FilteredActivities},
57            intermission::IntermissionAction,
58            reflection::{
59                Highlights, ReflectionSummary, ReflectionsFormatKind, SummaryActivityGroup,
60                SummaryCategories, SummaryGroupByCategory,
61            },
62            status::ActivityStatusKind,
63        },
64        error::{PaceError, PaceErrorKind, PaceOptResult, PaceResult, TestResult, UserMessage},
65        service::{activity_store::ActivityStore, activity_tracker::ActivityTracker},
66        storage::{
67            file::TomlActivityStorage, get_storage_from_config, in_memory::InMemoryActivityStorage,
68            ActivityQuerying, ActivityReadOps, ActivityStateManagement, ActivityStorage,
69            ActivityWriteOps, StorageKind, SyncStorage,
70        },
71        util::overwrite_left_with_right,
72    };
73}