1#![allow(clippy::missing_safety_doc)]
17
18#[macro_use]
19mod macros;
20mod acquire;
21pub mod cache;
22pub mod config;
23mod depcache;
24pub mod error;
25mod iterators;
26mod pkgmanager;
27pub mod progress;
28pub mod records;
29pub mod tagfile;
30pub mod util;
31
32#[doc(inline)]
33pub use cache::{Cache, PackageSort};
34pub use iterators::dependency::{create_depends_map, BaseDep, DepFlags, DepType, Dependency};
35pub use iterators::files::{PackageFile, VersionFile};
36pub use iterators::package::{Package, PkgCurrentState, PkgInstState, PkgSelectedState};
37pub use iterators::provider::Provider;
38pub use iterators::version::Version;
39
40pub mod raw {
42 pub use crate::acquire::raw::{
43 acquire_status, create_acquire, AcqTextStatus, AcqWorker, Item, ItemDesc, ItemState,
44 PkgAcquire,
45 };
46 pub use crate::cache::raw::{create_cache, PkgCacheFile};
47 pub use crate::depcache::raw::{ActionGroup, PkgDepCache};
48 pub use crate::iterators::{
49 DepIterator, DescIterator, PkgFileIterator, PkgIterator, PrvIterator, VerFileIterator,
50 VerIterator,
51 };
52 pub use crate::pkgmanager::raw::{
53 create_pkgmanager, create_problem_resolver, PackageManager, ProblemResolver,
54 };
55 pub use crate::records::raw::{IndexFile, Parser, PkgRecords};
56 pub use crate::util::raw::*;
57 pub mod config {
61 pub use crate::config::raw::*;
62 }
63
64 pub trait IntoRawIter {
66 type Item;
67 fn raw_iter(self) -> Self::Item;
68
69 fn make_safe(self) -> Option<Self>
70 where
71 Self: Sized;
72
73 fn to_vec(self) -> Vec<Self>
74 where
75 Self: Sized;
76 }
77
78 use cxx::UniquePtr;
79 use paste::paste;
80
81 raw_iter!(
82 PkgIterator,
83 VerIterator,
84 DepIterator,
85 PrvIterator,
86 VerFileIterator,
87 DescIterator,
88 PkgFileIterator
89 );
90}
91
92use depcache::DepCache;
93use error::AptErrors;
94use records::PackageRecords;
95
96impl_deref!(
97 Cache -> raw::PkgCacheFile,
98 DepCache -> raw::PkgDepCache,
99 PackageRecords -> raw::PkgRecords,
100 AptErrors -> Vec<error::raw::AptError>,
101 Package<'a> -> raw::PkgIterator,
102 Version<'a> -> raw::VerIterator,
103 Dependency<'a> -> Vec<BaseDep<'a>>,
104 BaseDep<'a> -> raw::DepIterator,
105 Provider<'a> -> raw::PrvIterator,
106 VersionFile<'a> -> raw::VerFileIterator,
107 PackageFile<'a> -> raw::PkgFileIterator,
108);
109
110impl_partial_eq!(
112 Package<'a>,
113 BaseDep<'a>,
114 Provider<'a>,
115 VersionFile<'a>,
116 PackageFile<'a>,
117);
118
119impl_hash_eq!(
120 Package<'a>,
121 Version<'a>,
122 BaseDep<'a>,
123 Provider<'a>,
124 VersionFile<'a>,
125 PackageFile<'a>,
126);