Module database

Module database 

Source
Expand description

Database module - organized submodules for better maintainability

Re-exports§

pub use mappers::map_task_row;
pub use mappers::parse_optional_uuid;
pub use mappers::parse_uuid_with_fallback;
pub use query_builders::TaskUpdateBuilder;
pub use validators::validate_area_exists;
pub use validators::validate_project_exists;
pub use validators::validate_task_exists;
pub use date_utils::add_days;
pub use date_utils::format_date_for_display;
pub use date_utils::is_date_in_future;
pub use date_utils::is_date_in_past;
pub use date_utils::is_valid_things_timestamp;
pub use date_utils::parse_date_from_string;
pub use date_utils::safe_naive_date_to_things_timestamp;
pub use date_utils::safe_things_date_to_naive_date;
pub use date_utils::validate_date_range;
pub use date_utils::DateConversionError;
pub use date_utils::DateValidationError;

Modules§

date_utils
Date validation and conversion utilities for Things 3
mappers
Row mapping utilities for converting database rows to domain models
query_builders
SQL Query Builder utilities for type-safe query construction
tag_utils
Tag manipulation utilities for duplicate prevention
validators
Entity validation utilities for database operations

Structs§

ComprehensiveHealthStatus
Comprehensive health status including pool and database
DatabasePoolConfig
Database connection pool configuration for optimal performance
DatabaseStats
Database statistics
PoolHealthStatus
Connection pool health status
PoolMetrics
Detailed connection pool metrics
SqliteOptimizations
SQLite-specific optimization settings
ThingsDatabase
SQLx-based database implementation for Things 3 data This provides async, Send + Sync compatible database access

Functions§

deserialize_tags_from_blob
Deserialize tags from Things 3 binary format
get_default_database_path
Get the default Things 3 database path
naive_date_to_things_timestamp
Convert NaiveDate to Things 3 timestamp (seconds since 2001-01-01)
serialize_tags_to_blob
Serialize tags to Things 3 binary format Note: This is a simplified implementation using JSON The actual Things 3 binary format is proprietary