pub use crate::errors::{AppError, Result};
pub use crate::app::{
collect_all_files,
collect_datasets_and_years,
filter_manifest_files,
CacheConfig,
CacheManager,
CacheStats,
CedaClient,
ClientConfig,
Coordinator,
CoordinatorConfig,
DatasetFileInfo,
DownloadStats,
FileInfo,
ManifestConfig,
ManifestStreamer,
Md5Hash,
QualityControlVersion,
QueueStats,
SessionResult,
WorkQueue,
WorkQueueConfig,
};
pub use crate::auth::{
check_credentials, get_auth_status, setup_credentials, verify_credentials, AuthStatus,
};
pub use crate::constants::{
DEFAULT_RATE_LIMIT_RPS, DEFAULT_WORKER_COUNT, ENV_PASSWORD, ENV_USERNAME, USER_AGENT,
};
pub use std::path::{Path, PathBuf};
pub use std::sync::Arc;
pub use tokio;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_prelude_imports() {
let _config = CacheConfig::default();
let _coordinator_config = CoordinatorConfig::default();
let _client_config = ClientConfig::default();
let _queue_config = WorkQueueConfig::default();
let _has_creds = check_credentials();
let _auth_status = get_auth_status();
assert_eq!(DEFAULT_WORKER_COUNT, 8);
assert!(USER_AGENT.contains("MIDAS-Fetcher"));
}
#[tokio::test]
async fn test_prelude_integration_pattern() {
use tempfile::TempDir;
let temp_dir = TempDir::new().unwrap();
let cache_config = CacheConfig {
cache_root: Some(temp_dir.path().to_path_buf()),
..Default::default()
};
let _cache = Arc::new(CacheManager::new(cache_config).await.unwrap());
let queue = Arc::new(WorkQueue::new());
let stats = queue.stats().await;
assert_eq!(stats.total_added, 0);
let coordinator_config = CoordinatorConfig::default();
assert_eq!(coordinator_config.worker_count, DEFAULT_WORKER_COUNT);
}
#[test]
fn test_std_reexports() {
let _path = PathBuf::from("/tmp/test");
let data = Arc::new(42);
assert_eq!(*data, 42);
}
}