#[cxx::bridge]
pub(crate) mod raw {
#[repr(u32)]
enum ItemState {
StatIdle,
StatFetching,
StatDone,
StatError,
StatAuthError,
StatTransientNetworkError,
}
unsafe extern "C++" {
include!("rust-apt/apt-pkg-c/acquire.h");
type AcqTextStatus;
type PkgAcquire;
type AcqWorker;
type ItemDesc;
type Item;
type ItemState;
type AcquireProgress<'a> = crate::progress::AcquireProgress<'a>;
pub fn id(self: &Item) -> u32;
pub fn complete(self: &Item) -> bool;
pub fn file_size(self: &Item) -> u64;
pub fn uri(self: &Item) -> String;
pub fn dest_file(self: &Item) -> String;
pub fn status(self: &Item) -> ItemState;
pub fn error_text(self: &Item) -> String;
pub fn active_subprocess(self: &Item) -> String;
pub fn owner(self: &Item) -> UniquePtr<PkgAcquire>;
pub fn uri(self: &ItemDesc) -> String;
pub fn description(self: &ItemDesc) -> String;
pub fn short_desc(self: &ItemDesc) -> String;
pub fn owner(self: &ItemDesc) -> UniquePtr<Item>;
unsafe fn acquire_status() -> UniquePtr<AcqTextStatus>;
unsafe fn set_callback(self: Pin<&mut AcqTextStatus>, progress: *mut AcquireProgress);
pub fn current_cps(self: &AcqTextStatus) -> u64;
pub fn elapsed_time(self: &AcqTextStatus) -> u64;
pub fn fetched_bytes(self: &AcqTextStatus) -> u64;
pub fn current_bytes(self: &AcqTextStatus) -> u64;
pub fn total_bytes(self: &AcqTextStatus) -> u64;
pub fn percent(self: &AcqTextStatus) -> f64;
pub fn status(self: &AcqWorker) -> String;
pub fn item(self: &AcqWorker) -> Result<UniquePtr<ItemDesc>>;
pub fn current_size(self: &AcqWorker) -> u64;
pub fn total_size(self: &AcqWorker) -> u64;
pub fn workers(self: &PkgAcquire) -> UniquePtr<CxxVector<AcqWorker>>;
unsafe fn uris(self: &PkgAcquire) -> UniquePtr<CxxVector<ItemDesc>>;
unsafe fn create_acquire() -> UniquePtr<PkgAcquire>;
}
}