Skip to main content

arch_toolkit/
prelude.rs

1//! Prelude module for convenient imports.
2//!
3//! This module re-exports commonly used types, traits, and functions from arch-toolkit,
4//! allowing you to import everything you need with a single `use arch_toolkit::prelude::*;`.
5//!
6//! # Examples
7//!
8//! ## Basic Usage
9//!
10//! ```no_run
11//! use arch_toolkit::prelude::*;
12//!
13//! # async fn example() -> Result<()> {
14//! let client = ArchClient::new()?;
15//! let packages: Vec<AurPackage> = client.aur().search("yay").await?;
16//! Ok(())
17//! # }
18//! ```
19//!
20//! ## With Custom Configuration
21//!
22//! ```no_run
23//! use arch_toolkit::prelude::*;
24//! use std::time::Duration;
25//!
26//! # async fn example() -> Result<()> {
27//! let client = ArchClient::builder()
28//!     .timeout(Duration::from_secs(60))
29//!     .user_agent("my-app/1.0")
30//!     .build()?;
31//! let packages = client.aur().search("yay").await?;
32//! Ok(())
33//! # }
34//! ```
35//!
36//! ## Using Mock for Testing
37//!
38//! ```no_run
39//! use arch_toolkit::prelude::*;
40//!
41//! # async fn example() -> Result<()> {
42//! let mock = MockAurApi::new()
43//!     .with_search_result("yay", Ok(vec![]));
44//! let packages = mock.search("yay").await?;
45//! Ok(())
46//! # }
47//! ```
48//!
49//! ## Dependency Resolution
50//!
51//! ```ignore
52//! use arch_toolkit::prelude::*;
53//!
54//! let resolver = DependencyResolver::new();
55//! let packages = vec![
56//!     PackageRef {
57//!         name: "firefox".into(),
58//!         version: "121.0".into(),
59//!         source: PackageSource::Official {
60//!             repo: "extra".into(),
61//!             arch: "x86_64".into(),
62//!         },
63//!     },
64//! ];
65//!
66//! let result = resolver.resolve(&packages).unwrap();
67//! println!("Found {} dependencies", result.dependencies.len());
68//! ```
69
70// Core client types
71#[cfg(feature = "aur")]
72pub use crate::client::{ArchClient, ArchClientBuilder};
73
74// Data types
75pub use crate::types::{AurComment, AurPackage, AurPackageDetails};
76
77// Error handling
78pub use crate::error::{ArchToolkitError as Error, Result};
79
80// Traits
81#[cfg(feature = "aur")]
82pub use crate::aur::AurApi;
83
84// Testing
85#[cfg(feature = "aur")]
86pub use crate::aur::MockAurApi;
87
88// Configuration types
89#[cfg(feature = "aur")]
90pub use crate::cache::{CacheConfig, CacheConfigBuilder};
91
92#[cfg(feature = "aur")]
93pub use crate::aur::validation::ValidationConfig;
94
95#[cfg(feature = "aur")]
96pub use crate::client::RetryPolicy;
97
98#[cfg(feature = "aur")]
99pub use crate::client::CacheInvalidator;
100
101// Health types
102#[cfg(feature = "aur")]
103pub use crate::types::{HealthStatus, ServiceStatus};
104
105// Dependency types and functions
106#[cfg(feature = "deps")]
107pub use crate::types::{
108    Dependency, DependencySource, DependencySpec, DependencyStatus, PackageRef, PackageSource,
109    ReverseDependencySummary, SrcinfoData,
110};
111
112#[cfg(feature = "deps")]
113pub use crate::deps::{
114    DependencyResolution, DependencyResolver, ResolverConfig, ReverseDependencyAnalyzer,
115    ReverseDependencyReport, get_installed_packages, parse_dep_spec, version_satisfies,
116};