pakka 0.0.5

A cross platform meta package manager with auto snapshotting file system based transactions
Documentation
use apt_package_manager::AptPackageManager;
use scoop_package_manager::ScoopPackageManager;

use crate::Filesystem;

pub mod apt_package_manager;
pub mod brew_package_manager;
pub mod dnf_package_manager;
pub mod nix_package_manager;
pub mod pacman_package_manager;
pub mod scoop_package_manager;
pub mod zypper_package_manager;

pub mod os_detection;
pub mod package_manager_detection;

pub trait PackageManager {
  fn get_name(&self) -> &str;
  fn install_package(&self, package: &str, fs_type: &Filesystem);
  fn uninstall_package(&self, package: &str, fs_type: &Filesystem);
}

impl std::fmt::Debug for dyn PackageManager {
  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    write!(f, "{}", self.get_name())
  }
}

impl std::fmt::Display for dyn PackageManager {
  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    write!(f, "{:?}", self)
  }
}