Skip to main content

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
22mod aim;
23mod config;
24mod datetime;
25mod db;
26mod event;
27mod short_id;
28mod store;
29mod todo;
30mod types;
31
32pub use crate::aim::{Aim, CalendarDetails, CalendarStoreDetails};
33pub use crate::config::{APP_NAME, CalendarEntry, Config, StoreDef};
34pub use crate::db::calendars::CalendarRecord;
35pub use crate::store::{CaldavStore, LocalStore, Store, StoreError, SyncResult}; // TODO: don't export this directly
36
37// Re-export AuthMethod for use in config
38pub use crate::datetime::{DateTimeAnchor, LooseDateTime, RangePosition};
39pub use crate::event::{Event, EventConditions, EventDraft, EventPatch, EventStatus};
40pub use crate::todo::{Todo, TodoConditions, TodoDraft, TodoPatch, TodoSort, TodoStatus};
41pub use crate::types::{Id, Kind, Pager, Priority, SortOrder, StoreKind};
42pub use aimcal_caldav::AuthMethod;