diff options
author | Alexander Foremny <aforemny@posteo.de> | 2023-12-04 08:36:02 +0100 |
---|---|---|
committer | Alexander Foremny <aforemny@posteo.de> | 2023-12-05 06:07:41 +0100 |
commit | 1b1c3faabae530229eb675a2e70e744c2f45cbbe (patch) | |
tree | acc3e8eede9053fb5e639deeb553aa600c994598 /app/Issue/Filter.hs | |
parent | 3a76b6f0fc0c9c23000dd82870922c885c34ffa6 (diff) |
feat: add experimental render api
Diffstat (limited to 'app/Issue/Filter.hs')
-rw-r--r-- | app/Issue/Filter.hs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/app/Issue/Filter.hs b/app/Issue/Filter.hs index e8209a7..68eda87 100644 --- a/app/Issue/Filter.hs +++ b/app/Issue/Filter.hs @@ -2,11 +2,14 @@ module Issue.Filter ( Filter, filterArg, applyFilters, + applyClosed, + applyPath, ) where import Control.Applicative (liftA2, (<|>)) import Data.Attoparsec.Text qualified as A +import Data.List (isPrefixOf) import Data.Text (Text) import Data.Text qualified as T import Issue (Issue (..)) @@ -132,3 +135,15 @@ op (Ge) = flip (>=) op (Gt) = flip (>) op (Le) = flip (<=) op (Lt) = flip (<) + +applyClosed :: Bool -> [Issue] -> [Issue] +applyClosed closed = filter (\issue -> closed || not issue.closed) + +applyPath :: [FilePath] -> [Issue] -> [Issue] +applyPath files = + filter + ( \issue -> + if null files + then True + else any (`isPrefixOf` issue.file) files + ) |