smirrors 0.1.0

Automatic mirror list updater for Linux distributions
Documentation
//! SMirrors - Automatic Mirror List Updater
//!
//! This library provides core functionality for testing and managing
//! Linux package manager mirrors across multiple distributions.
//!
//! # Features
//!
//! - Automatic mirror testing based on speed and latency
//! - Support for multiple Linux distributions (Debian, Ubuntu, Fedora, Arch, openSUSE)
//! - TUI for interactive mirror management
//! - CLI for automation and scripting
//! - Background service with systemd integration
//! - SQLite database for historical tracking
//!
//! # Example
//!
//! ```no_run
//! use smirrors::{Config, MirrorTester};
//!
//! #[tokio::main]
//! async fn main() -> smirrors::Result<()> {
//!     let config = Config::load()?;
//!     let tester = MirrorTester::from_config(&config)?;
//!
//!     // Test mirrors and update
//!     // Implementation...
//!     Ok(())
//! }
//! ```

pub mod cli;
pub mod config;
pub mod core;
pub mod distro;
pub mod service;
pub mod storage;
pub mod tui;
pub mod utils;

// Re-export commonly used types
pub use config::Config;
pub use core::{Mirror, MirrorTester, MirrorUpdater, TestResult};
pub use distro::{Distro, DistroHandler};
pub use utils::error::SMirrorsError;

/// Result type alias for SMirrors operations
pub type Result<T> = std::result::Result<T, anyhow::Error>;

/// Application version from Cargo.toml
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

/// Application name
pub const APP_NAME: &str = "smirrors";