crosup_installers/
lib.rs

1use std::any::Any;
2
3use anyhow::Error;
4
5pub mod apk;
6pub mod apt;
7pub mod brew;
8pub mod curl;
9pub mod dnf;
10pub mod emerge;
11pub mod fleek;
12pub mod git;
13pub mod home_manager;
14pub mod nix;
15pub mod pacman;
16pub mod slackpkg;
17pub mod yum;
18pub mod zypper;
19
20pub trait Installer {
21    fn install(&self) -> Result<(), Error>;
22    fn is_installed(&self) -> Result<bool, Error>;
23    fn name(&self) -> &str;
24    fn version(&self) -> &str;
25    fn dependencies(&self) -> Vec<String>;
26    fn is_default(&self) -> bool;
27    fn provider(&self) -> &str;
28    fn as_any(&self) -> &dyn Any;
29}