module Data.FuzzySet.Types
( FuzzySetItem(..)
, GramInfo(..)
, FuzzySet(..)
) where
import Data.HashMap.Strict (HashMap)
import Data.Vector (Vector)
import Data.Text (Text)
data FuzzySetItem = FuzzySetItem
{ FuzzySetItem -> Double
vectorMagnitude :: !Double
, FuzzySetItem -> Text
normalizedEntry :: !Text
} deriving (FuzzySetItem -> FuzzySetItem -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FuzzySetItem -> FuzzySetItem -> Bool
$c/= :: FuzzySetItem -> FuzzySetItem -> Bool
== :: FuzzySetItem -> FuzzySetItem -> Bool
$c== :: FuzzySetItem -> FuzzySetItem -> Bool
Eq, Int -> FuzzySetItem -> ShowS
[FuzzySetItem] -> ShowS
FuzzySetItem -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FuzzySetItem] -> ShowS
$cshowList :: [FuzzySetItem] -> ShowS
show :: FuzzySetItem -> String
$cshow :: FuzzySetItem -> String
showsPrec :: Int -> FuzzySetItem -> ShowS
$cshowsPrec :: Int -> FuzzySetItem -> ShowS
Show)
data GramInfo = GramInfo
{ GramInfo -> Int
itemIndex :: !Int
, GramInfo -> Int
gramCount :: !Int
} deriving (GramInfo -> GramInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GramInfo -> GramInfo -> Bool
$c/= :: GramInfo -> GramInfo -> Bool
== :: GramInfo -> GramInfo -> Bool
$c== :: GramInfo -> GramInfo -> Bool
Eq, Int -> GramInfo -> ShowS
[GramInfo] -> ShowS
GramInfo -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GramInfo] -> ShowS
$cshowList :: [GramInfo] -> ShowS
show :: GramInfo -> String
$cshow :: GramInfo -> String
showsPrec :: Int -> GramInfo -> ShowS
$cshowsPrec :: Int -> GramInfo -> ShowS
Show)
data FuzzySet = FuzzySet
{ FuzzySet -> HashMap Text Text
exactSet :: !(HashMap Text Text)
, FuzzySet -> HashMap Text [GramInfo]
matchDict :: !(HashMap Text [GramInfo])
, FuzzySet -> HashMap Int (Vector FuzzySetItem)
items :: !(HashMap Int (Vector FuzzySetItem))
, FuzzySet -> Int
gramSizeLower :: !Int
, FuzzySet -> Int
gramSizeUpper :: !Int
, FuzzySet -> Bool
useLevenshtein :: !Bool
} deriving (FuzzySet -> FuzzySet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FuzzySet -> FuzzySet -> Bool
$c/= :: FuzzySet -> FuzzySet -> Bool
== :: FuzzySet -> FuzzySet -> Bool
$c== :: FuzzySet -> FuzzySet -> Bool
Eq, Int -> FuzzySet -> ShowS
[FuzzySet] -> ShowS
FuzzySet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FuzzySet] -> ShowS
$cshowList :: [FuzzySet] -> ShowS
show :: FuzzySet -> String
$cshow :: FuzzySet -> String
showsPrec :: Int -> FuzzySet -> ShowS
$cshowsPrec :: Int -> FuzzySet -> ShowS
Show)