aimcal_core/
lib.rs

1// SPDX-FileCopyrightText: 2025-2026 Zexin Yuan <aim@yzx9.xyz>
2//
3// SPDX-License-Identifier: Apache-2.0
4
5//! Core library for the AIM calendar application.
6
7#![warn(
8    trivial_casts,
9    trivial_numeric_casts,
10    missing_copy_implementations,
11    missing_debug_implementations,
12    missing_docs,
13    unsafe_code,
14    unstable_features,
15    unused_import_braces,
16    unused_qualifications,
17    clippy::dbg_macro,
18    clippy::indexing_slicing,
19    clippy::pedantic
20)]
21// Allow certain clippy lints that are too restrictive for this crate
22#![allow(
23    clippy::option_option,
24    clippy::similar_names,
25    clippy::single_match_else,
26    clippy::match_bool
27)]
28
29mod aim;
30mod config;
31mod datetime;
32mod event;
33mod io;
34mod localdb;
35mod short_id;
36mod todo;
37mod types;
38
39pub use crate::aim::Aim;
40pub use crate::config::{APP_NAME, Config};
41pub use crate::datetime::{DateTimeAnchor, LooseDateTime, RangePosition};
42pub use crate::event::{Event, EventConditions, EventDraft, EventPatch, EventStatus};
43pub use crate::todo::{Todo, TodoConditions, TodoDraft, TodoPatch, TodoSort, TodoStatus};
44pub use crate::types::{Id, Kind, Pager, Priority, SortOrder};