ModuleSetup returns a concrete type via a generic type parameter

This commit is contained in:
selfhoster selfhoster 2023-04-20 12:44:48 +02:00
commit 7019a0a071
4 changed files with 12 additions and 12 deletions

View file

@ -53,8 +53,8 @@ impl Module<PackageArgs, (), PackageError> for PackageModule<Box<dyn SpecificPac
}
}
impl ModuleSetup<PackageArgs, (), PackageError> for PackageModule<NoManager> {
fn with_facts(self, facts: &Facts) -> Box<dyn Module<PackageArgs, (), PackageError>> {
impl ModuleSetup<PackageModule<Box<dyn SpecificPackageManager>>, PackageArgs, (), PackageError> for PackageModule<NoManager> {
fn with_facts(self, facts: &Facts) -> PackageModule<Box<dyn SpecificPackageManager>> {
let Self { args, .. } = self;
let manager: Box<dyn SpecificPackageManager> = match facts.os.family() {
@ -62,10 +62,10 @@ impl ModuleSetup<PackageArgs, (), PackageError> for PackageModule<NoManager> {
OsFamily::Archlinux => Box::new(ArchlinuxPackageManager),
};
Box::new(PackageModule {
PackageModule {
args,
manager,
})
}
}
}