From 47ca7c9e8658c1bdbd9e9519581935b1da3ee538 Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Fri, 20 Dec 2024 19:05:05 +0100 Subject: add =~ comparison --- src/Store/Query.hs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Store/Query.hs') diff --git a/src/Store/Query.hs b/src/Store/Query.hs index 4c0f829..8520d0b 100644 --- a/src/Store/Query.hs +++ b/src/Store/Query.hs @@ -24,6 +24,7 @@ import Store.Query.Record import Store.Query.Type import Store.Store qualified as S import System.FilePath (()) +import Text.Regex.PCRE data Paginated = Paginated { count :: Int, @@ -194,6 +195,10 @@ satisfies Nothing _ = True satisfies (Just (And ws)) vs = all (\w -> satisfies (Just w) vs) ws satisfies (Just (Or ws)) vs = any (\w -> satisfies (Just w) vs) ws satisfies (Just (Where (Eq f g))) vs = either Just (flip lookups vs) f == either Just (flip lookups vs) g +satisfies (Just (Where (Regex f p))) vs = + case either Just (flip lookups vs) f of + Just (J.String s) -> p `matchTest` T.unpack s + _ -> False decodeFile :: String -> String -> S.StoreM J.Value decodeFile c fn = do -- cgit v1.2.3