]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Storage/Types.hs
Resurrection from bitrot
[Rakka.git] / Rakka / Storage / Types.hs
index 2944f287038ba81ee45389694bcfc8901ba73b56..75d8ef158ba8c76481ae96efc8ef01166d84a311 100644 (file)
@@ -1,17 +1,21 @@
+{-# LANGUAGE
+    UnicodeSyntax
+  #-}
 module Rakka.Storage.Types
     ( Storage(..)
     , IndexReq(..)
     , SearchResult(..)
+    , HitPage(..)
     , SnippetFragment(..)
     )
     where
-
-import           Control.Concurrent.STM
-import           Rakka.Page
-import           Subversion.Repository
-import           Subversion.Types
-import           Text.HyperEstraier hiding (WriteLock)
-
+import Control.Concurrent.STM
+import Data.Text (Text)
+import Data.Time
+import Rakka.Page
+import Subversion.Repository
+import Subversion.Types
+import Text.HyperEstraier hiding (WriteLock)
 
 data Storage
     = Storage {
@@ -19,23 +23,30 @@ data Storage
       , stoIndexChan  :: !(TChan IndexReq)
       }
 
-
 data IndexReq
     = RebuildIndex
     | SyncIndex
-    | SearchIndex !Condition !(TMVar [SearchResult])
-
+    | SearchIndex !Condition !(TMVar SearchResult)
 
 data SearchResult
     = SearchResult {
-        srPageName :: !PageName
-      , srPageRev  :: !RevNum
-      , srSnippet  :: [SnippetFragment]
+        srTotal :: !Int
+      , srPages :: ![HitPage]
       }
     deriving (Show, Eq)
 
+data HitPage
+    = HitPage {
+        hpPageName :: !PageName
+      , hpPageRev  :: RevNum
+      , hpLastMod  :: UTCTime
+      , hpSummary  :: Maybe Text
+      , hpSnippet  :: [SnippetFragment]
+      }
+    deriving (Show, Eq)
 
 data SnippetFragment
-    = NormalText      !String
-    | HighlightedWord !String
-    deriving (Show, Eq)
\ No newline at end of file
+    = Boundary
+    | NormalText      !Text
+    | HighlightedWord !Text
+    deriving (Show, Eq)