convert pacman to first backend
This commit is contained in:
+2
-2
@@ -3,7 +3,7 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
fn get_all_installed_packages(c: &mut Criterion) {
|
||||
c.bench_function("get_all_installed_packages", |b| {
|
||||
b.iter(|| {
|
||||
black_box(pacdef::db::get_all_installed_packages());
|
||||
black_box(pacdef::backend::get_all_installed_packages());
|
||||
})
|
||||
});
|
||||
}
|
||||
@@ -11,7 +11,7 @@ fn get_all_installed_packages(c: &mut Criterion) {
|
||||
fn get_explicitly_installed_packages(c: &mut Criterion) {
|
||||
c.bench_function("get_explicitly_installed_packages", |b| {
|
||||
b.iter(|| {
|
||||
black_box(pacdef::db::get_explicitly_installed_packages());
|
||||
black_box(pacdef::backend::get_explicitly_installed_packages());
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
@@ -5,14 +5,23 @@ use alpm::PackageReason::Explicit;
|
||||
|
||||
use crate::Package;
|
||||
|
||||
/// Get all packages that are installed in the system.
|
||||
pub fn get_all_installed_packages() -> HashSet<Package> {
|
||||
convert_to_pacdef_packages(get_all_installed_packages_from_alpm())
|
||||
pub trait Backend {
|
||||
/// Get all packages that are installed in the system.
|
||||
fn get_all_installed_packages() -> HashSet<Package>;
|
||||
/// Get all packages that were installed in the system explicitly.
|
||||
fn get_explicitly_installed_packages() -> HashSet<Package>;
|
||||
}
|
||||
|
||||
/// Get all packages that were installed in the system explicitly.
|
||||
pub fn get_explicitly_installed_packages() -> HashSet<Package> {
|
||||
convert_to_pacdef_packages(get_explicitly_installed_packages_from_alpm())
|
||||
pub struct Pacman;
|
||||
|
||||
impl Backend for Pacman {
|
||||
fn get_all_installed_packages() -> HashSet<Package> {
|
||||
convert_to_pacdef_packages(get_all_installed_packages_from_alpm())
|
||||
}
|
||||
|
||||
fn get_explicitly_installed_packages() -> HashSet<Package> {
|
||||
convert_to_pacdef_packages(get_explicitly_installed_packages_from_alpm())
|
||||
}
|
||||
}
|
||||
|
||||
fn get_all_installed_packages_from_alpm() -> HashSet<String> {
|
||||
+3
-3
@@ -5,8 +5,8 @@ use anyhow::{bail, Context, Result};
|
||||
use clap::ArgMatches;
|
||||
|
||||
use crate::action;
|
||||
use crate::backend::{Backend, Pacman};
|
||||
use crate::cmd::{run_edit_command, run_install_command, run_remove_command};
|
||||
use crate::db::{get_all_installed_packages, get_explicitly_installed_packages};
|
||||
use crate::ui::get_user_confirmation;
|
||||
use crate::Group;
|
||||
use crate::Package;
|
||||
@@ -37,7 +37,7 @@ impl Pacdef {
|
||||
|
||||
pub(crate) fn get_packages_to_install(&mut self) -> Vec<Package> {
|
||||
let managed = self.take_packages_as_set();
|
||||
let local_packages = get_all_installed_packages();
|
||||
let local_packages = Pacman::get_all_installed_packages();
|
||||
let mut diff: Vec<_> = managed
|
||||
.into_iter()
|
||||
.filter(|p| !local_packages.contains(p))
|
||||
@@ -108,7 +108,7 @@ impl Pacdef {
|
||||
/// Returns a `Vec` of alphabetically sorted unmanaged packages.
|
||||
pub(crate) fn get_unmanaged_packages(&mut self) -> Vec<Package> {
|
||||
let managed = self.take_packages_as_set();
|
||||
let explicitly_installed = get_explicitly_installed_packages();
|
||||
let explicitly_installed = Pacman::get_explicitly_installed_packages();
|
||||
let mut result: Vec<_> = explicitly_installed
|
||||
.into_iter()
|
||||
.filter(|p| !managed.contains(p))
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
mod action;
|
||||
pub mod args;
|
||||
pub mod backend;
|
||||
mod cmd;
|
||||
mod core;
|
||||
pub mod db;
|
||||
mod env;
|
||||
mod group;
|
||||
mod package;
|
||||
|
||||
Reference in New Issue
Block a user