From 4d14473635b077755368c57497af9c20f9c30254 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 2 May 2019 16:21:11 +0200 Subject: Revert "Add filters for Repo, Name, Status, Version, License and Maintainer" We do not really need this feature in the library, authors of software can easily implement this for their needs and we do not have to ship all features all people _might_ use at some point. Keep the library KISSy. This reverts commit 44215217da63762b36827f5ef6604c5a2ad6b73d. --- librepology/Cargo.toml | 8 +--- librepology/src/lib.rs | 9 +---- librepology/src/packagefilters.rs | 81 --------------------------------------- 3 files changed, 2 insertions(+), 96 deletions(-) delete mode 100644 librepology/src/packagefilters.rs diff --git a/librepology/Cargo.toml b/librepology/Cargo.toml index 7dadd2f..3dccff0 100644 --- a/librepology/Cargo.toml +++ b/librepology/Cargo.toml @@ -25,12 +25,6 @@ url_serde = "0.2" failure = "0.1" log = "0.4" derive_more = "0.14" +derive-new = "0.5" curl = "0.4" -filters = { version = "0.3", optional = true } -derive-new = { version = "0.5", optional = true } - -[features] -# By default, we include the filters functionality -default = [ "packagefilters" ] -packagefilters = ["filters", "derive-new"] diff --git a/librepology/src/lib.rs b/librepology/src/lib.rs index 76992fd..d0904a4 100644 --- a/librepology/src/lib.rs +++ b/librepology/src/lib.rs @@ -5,16 +5,9 @@ extern crate url; extern crate url_serde; extern crate curl; -#[cfg(feature = "packagefilters")] -extern crate filters; -#[cfg(feature = "packagefilters")] -#[macro_use] extern crate derive_new; - #[macro_use] extern crate serde_derive; #[macro_use] extern crate log; #[macro_use] extern crate derive_more; +#[macro_use] extern crate derive_new; pub mod v1; - -#[cfg(feature = "packagefilters")] -pub mod packagefilters; diff --git a/librepology/src/packagefilters.rs b/librepology/src/packagefilters.rs deleted file mode 100644 index d1293d4..0000000 --- a/librepology/src/packagefilters.rs +++ /dev/null @@ -1,81 +0,0 @@ -use filters::filter::Filter; - -use crate::v1::types::{Package, Repo, Name, Status, Version, License, Maintainer}; - - -#[derive(new, Debug)] -pub struct PackageRepoNameFilter(Repo); - -/// Filter implementation for PackageRepoNameFilter -/// -/// filters based on _equality_! -impl Filter for PackageRepoNameFilter { - fn filter(&self, package: &Package) -> bool { - self.0 == *package.repo() - } -} - - -#[derive(new, Debug)] -pub struct PackageNameFilter(Name); - -/// Filter implementation for PackageNameFilter -/// -/// filters based on _equality_! -impl Filter for PackageNameFilter { - fn filter(&self, package: &Package) -> bool { - self.0 == *package.name() - } -} - - -#[derive(new, Debug)] -pub struct PackageVersionFilter(Version); - -/// Filter implementation for PackageVersionFilter -/// -/// filters based on _equality_! -impl Filter for PackageVersionFilter { - fn filter(&self, package: &Package) -> bool { - self.0 == *package.version() - } -} - - -#[derive(new, Debug)] -pub struct PackageStatusFilter(Status); - -/// Filter implementation for PackageStatusFilter -/// -/// filters based on _equality_! -impl Filter for PackageStatusFilter { - fn filter(&self, package: &Package) -> bool { - package.status().map(|s| self.0 == *s).unwrap_or(false) - } -} - - -#[derive(new, Debug)] -pub struct PackageLicenseFilter(License); - -/// Filter implementation for PackageLicenseFilter -/// -/// filters based on _equality_! -impl Filter for PackageLicenseFilter { - fn filter(&self, package: &Package) -> bool { - package.licenses().map(|lcs| lcs.iter().any(|l| self.0 == *l)).unwrap_or(false) - } -} - - -#[derive(new, Debug)] -pub struct PackageMaintainerFilter(Maintainer); - -/// Filter implementation for PackageMaintainerFilter -/// -/// filters based on _equality_! -impl Filter for PackageMaintainerFilter { - fn filter(&self, package: &Package) -> bool { - package.maintainers().map(|mts| mts.iter().any(|m| self.0 == *m)).unwrap_or(false) - } -} -- cgit v1.2.3