{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module Database.Bloodhound.Internal.Versions.Common.Types.Suggest where
import qualified Data.Aeson.KeyMap as X
import Database.Bloodhound.Internal.Utils.Imports
import Database.Bloodhound.Internal.Versions.Common.Types.Newtypes
import Database.Bloodhound.Internal.Versions.Common.Types.Query (Query, TemplateQueryKeyValuePairs)
import GHC.Generics
data Suggest = Suggest
{ Suggest -> Text
suggestText :: Text,
Suggest -> Text
suggestName :: Text,
Suggest -> SuggestType
suggestType :: SuggestType
}
deriving stock (Suggest -> Suggest -> Bool
(Suggest -> Suggest -> Bool)
-> (Suggest -> Suggest -> Bool) -> Eq Suggest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Suggest -> Suggest -> Bool
== :: Suggest -> Suggest -> Bool
$c/= :: Suggest -> Suggest -> Bool
/= :: Suggest -> Suggest -> Bool
Eq, Int -> Suggest -> ShowS
[Suggest] -> ShowS
Suggest -> String
(Int -> Suggest -> ShowS)
-> (Suggest -> String) -> ([Suggest] -> ShowS) -> Show Suggest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Suggest -> ShowS
showsPrec :: Int -> Suggest -> ShowS
$cshow :: Suggest -> String
show :: Suggest -> String
$cshowList :: [Suggest] -> ShowS
showList :: [Suggest] -> ShowS
Show, (forall x. Suggest -> Rep Suggest x)
-> (forall x. Rep Suggest x -> Suggest) -> Generic Suggest
forall x. Rep Suggest x -> Suggest
forall x. Suggest -> Rep Suggest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Suggest -> Rep Suggest x
from :: forall x. Suggest -> Rep Suggest x
$cto :: forall x. Rep Suggest x -> Suggest
to :: forall x. Rep Suggest x -> Suggest
Generic)
instance ToJSON Suggest where
toJSON :: Suggest -> Value
toJSON Suggest {Text
SuggestType
suggestText :: Suggest -> Text
suggestName :: Suggest -> Text
suggestType :: Suggest -> SuggestType
suggestText :: Text
suggestName :: Text
suggestType :: SuggestType
..} =
[Pair] -> Value
object
[ Key
"text" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
suggestText,
Text -> Key
fromText Text
suggestName Key -> SuggestType -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SuggestType
suggestType
]
instance FromJSON Suggest where
parseJSON :: Value -> Parser Suggest
parseJSON (Object Object
o) = do
Text
suggestText' <- Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"text"
let dropTextList :: [Pair]
dropTextList =
Object -> [Pair]
forall v. KeyMap v -> [(Key, v)]
X.toList (Object -> [Pair]) -> Object -> [Pair]
forall a b. (a -> b) -> a -> b
$
(Key -> Value -> Bool) -> Object -> Object
forall v. (Key -> v -> Bool) -> KeyMap v -> KeyMap v
X.filterWithKey (\Key
x Value
_ -> Key
x Key -> Key -> Bool
forall a. Eq a => a -> a -> Bool
/= Key
"text") Object
o
Key
suggestName' <-
case [Pair]
dropTextList of
[(Key
x, Value
_)] -> Key -> Parser Key
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return Key
x
[Pair]
_ -> String -> Parser Key
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"error parsing Suggest field name"
SuggestType
suggestType' <- Object
o Object -> Key -> Parser SuggestType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
suggestName'
Suggest -> Parser Suggest
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Suggest -> Parser Suggest) -> Suggest -> Parser Suggest
forall a b. (a -> b) -> a -> b
$ Text -> Text -> SuggestType -> Suggest
Suggest Text
suggestText' (Key -> Text
toText Key
suggestName') SuggestType
suggestType'
parseJSON Value
x = String -> Value -> Parser Suggest
forall a. String -> Value -> Parser a
typeMismatch String
"Suggest" Value
x
suggestTextLens :: Lens' Suggest Text
suggestTextLens :: Lens' Suggest Text
suggestTextLens = (Suggest -> Text)
-> (Suggest -> Text -> Suggest) -> Lens' Suggest Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens Suggest -> Text
suggestText (\Suggest
x Text
y -> Suggest
x {suggestText = y})
suggestNameLens :: Lens' Suggest Text
suggestNameLens :: Lens' Suggest Text
suggestNameLens = (Suggest -> Text)
-> (Suggest -> Text -> Suggest) -> Lens' Suggest Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens Suggest -> Text
suggestName (\Suggest
x Text
y -> Suggest
x {suggestName = y})
suggestTypeLens :: Lens' Suggest SuggestType
suggestTypeLens :: Lens' Suggest SuggestType
suggestTypeLens = (Suggest -> SuggestType)
-> (Suggest -> SuggestType -> Suggest) -> Lens' Suggest SuggestType
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens Suggest -> SuggestType
suggestType (\Suggest
x SuggestType
y -> Suggest
x {suggestType = y})
data SuggestType
= SuggestTypePhraseSuggester PhraseSuggester
deriving stock (SuggestType -> SuggestType -> Bool
(SuggestType -> SuggestType -> Bool)
-> (SuggestType -> SuggestType -> Bool) -> Eq SuggestType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SuggestType -> SuggestType -> Bool
== :: SuggestType -> SuggestType -> Bool
$c/= :: SuggestType -> SuggestType -> Bool
/= :: SuggestType -> SuggestType -> Bool
Eq, Int -> SuggestType -> ShowS
[SuggestType] -> ShowS
SuggestType -> String
(Int -> SuggestType -> ShowS)
-> (SuggestType -> String)
-> ([SuggestType] -> ShowS)
-> Show SuggestType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SuggestType -> ShowS
showsPrec :: Int -> SuggestType -> ShowS
$cshow :: SuggestType -> String
show :: SuggestType -> String
$cshowList :: [SuggestType] -> ShowS
showList :: [SuggestType] -> ShowS
Show, (forall x. SuggestType -> Rep SuggestType x)
-> (forall x. Rep SuggestType x -> SuggestType)
-> Generic SuggestType
forall x. Rep SuggestType x -> SuggestType
forall x. SuggestType -> Rep SuggestType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SuggestType -> Rep SuggestType x
from :: forall x. SuggestType -> Rep SuggestType x
$cto :: forall x. Rep SuggestType x -> SuggestType
to :: forall x. Rep SuggestType x -> SuggestType
Generic)
instance ToJSON SuggestType where
toJSON :: SuggestType -> Value
toJSON (SuggestTypePhraseSuggester PhraseSuggester
x) =
[Pair] -> Value
object [Key
"phrase" Key -> PhraseSuggester -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PhraseSuggester
x]
instance FromJSON SuggestType where
parseJSON :: Value -> Parser SuggestType
parseJSON = String
-> (Object -> Parser SuggestType) -> Value -> Parser SuggestType
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SuggestType" Object -> Parser SuggestType
parse
where
parse :: Object -> Parser SuggestType
parse Object
o = PhraseSuggester -> Parser SuggestType
phraseSuggester (PhraseSuggester -> Parser SuggestType)
-> Key -> Parser SuggestType
forall {a} {b}. FromJSON a => (a -> Parser b) -> Key -> Parser b
`taggedWith` Key
"phrase"
where
taggedWith :: (a -> Parser b) -> Key -> Parser b
taggedWith a -> Parser b
parser Key
k = a -> Parser b
parser (a -> Parser b) -> Parser a -> Parser b
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Object
o Object -> Key -> Parser a
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
k
phraseSuggester :: PhraseSuggester -> Parser SuggestType
phraseSuggester = SuggestType -> Parser SuggestType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (SuggestType -> Parser SuggestType)
-> (PhraseSuggester -> SuggestType)
-> PhraseSuggester
-> Parser SuggestType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PhraseSuggester -> SuggestType
SuggestTypePhraseSuggester
data PhraseSuggester = PhraseSuggester
{ PhraseSuggester -> FieldName
phraseSuggesterField :: FieldName,
PhraseSuggester -> Maybe Int
phraseSuggesterGramSize :: Maybe Int,
PhraseSuggester -> Maybe Int
phraseSuggesterRealWordErrorLikelihood :: Maybe Int,
PhraseSuggester -> Maybe Int
phraseSuggesterConfidence :: Maybe Int,
PhraseSuggester -> Maybe Int
phraseSuggesterMaxErrors :: Maybe Int,
PhraseSuggester -> Maybe Text
phraseSuggesterSeparator :: Maybe Text,
PhraseSuggester -> Maybe Size
phraseSuggesterSize :: Maybe Size,
PhraseSuggester -> Maybe Analyzer
phraseSuggesterAnalyzer :: Maybe Analyzer,
PhraseSuggester -> Maybe Int
phraseSuggesterShardSize :: Maybe Int,
PhraseSuggester -> Maybe PhraseSuggesterHighlighter
phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter,
PhraseSuggester -> Maybe PhraseSuggesterCollate
phraseSuggesterCollate :: Maybe PhraseSuggesterCollate,
PhraseSuggester -> [DirectGenerators]
phraseSuggesterCandidateGenerators :: [DirectGenerators]
}
deriving stock (PhraseSuggester -> PhraseSuggester -> Bool
(PhraseSuggester -> PhraseSuggester -> Bool)
-> (PhraseSuggester -> PhraseSuggester -> Bool)
-> Eq PhraseSuggester
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhraseSuggester -> PhraseSuggester -> Bool
== :: PhraseSuggester -> PhraseSuggester -> Bool
$c/= :: PhraseSuggester -> PhraseSuggester -> Bool
/= :: PhraseSuggester -> PhraseSuggester -> Bool
Eq, Int -> PhraseSuggester -> ShowS
[PhraseSuggester] -> ShowS
PhraseSuggester -> String
(Int -> PhraseSuggester -> ShowS)
-> (PhraseSuggester -> String)
-> ([PhraseSuggester] -> ShowS)
-> Show PhraseSuggester
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PhraseSuggester -> ShowS
showsPrec :: Int -> PhraseSuggester -> ShowS
$cshow :: PhraseSuggester -> String
show :: PhraseSuggester -> String
$cshowList :: [PhraseSuggester] -> ShowS
showList :: [PhraseSuggester] -> ShowS
Show, (forall x. PhraseSuggester -> Rep PhraseSuggester x)
-> (forall x. Rep PhraseSuggester x -> PhraseSuggester)
-> Generic PhraseSuggester
forall x. Rep PhraseSuggester x -> PhraseSuggester
forall x. PhraseSuggester -> Rep PhraseSuggester x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PhraseSuggester -> Rep PhraseSuggester x
from :: forall x. PhraseSuggester -> Rep PhraseSuggester x
$cto :: forall x. Rep PhraseSuggester x -> PhraseSuggester
to :: forall x. Rep PhraseSuggester x -> PhraseSuggester
Generic)
instance ToJSON PhraseSuggester where
toJSON :: PhraseSuggester -> Value
toJSON PhraseSuggester {[DirectGenerators]
Maybe Int
Maybe Text
Maybe Analyzer
Maybe Size
Maybe PhraseSuggesterCollate
Maybe PhraseSuggesterHighlighter
FieldName
phraseSuggesterField :: PhraseSuggester -> FieldName
phraseSuggesterGramSize :: PhraseSuggester -> Maybe Int
phraseSuggesterRealWordErrorLikelihood :: PhraseSuggester -> Maybe Int
phraseSuggesterConfidence :: PhraseSuggester -> Maybe Int
phraseSuggesterMaxErrors :: PhraseSuggester -> Maybe Int
phraseSuggesterSeparator :: PhraseSuggester -> Maybe Text
phraseSuggesterSize :: PhraseSuggester -> Maybe Size
phraseSuggesterAnalyzer :: PhraseSuggester -> Maybe Analyzer
phraseSuggesterShardSize :: PhraseSuggester -> Maybe Int
phraseSuggesterHighlight :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
phraseSuggesterCollate :: PhraseSuggester -> Maybe PhraseSuggesterCollate
phraseSuggesterCandidateGenerators :: PhraseSuggester -> [DirectGenerators]
phraseSuggesterField :: FieldName
phraseSuggesterGramSize :: Maybe Int
phraseSuggesterRealWordErrorLikelihood :: Maybe Int
phraseSuggesterConfidence :: Maybe Int
phraseSuggesterMaxErrors :: Maybe Int
phraseSuggesterSeparator :: Maybe Text
phraseSuggesterSize :: Maybe Size
phraseSuggesterAnalyzer :: Maybe Analyzer
phraseSuggesterShardSize :: Maybe Int
phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
phraseSuggesterCandidateGenerators :: [DirectGenerators]
..} =
[Pair] -> Value
omitNulls
[ Key
"field" Key -> FieldName -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= FieldName
phraseSuggesterField,
Key
"gram_size" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
phraseSuggesterGramSize,
Key
"real_word_error_likelihood"
Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
phraseSuggesterRealWordErrorLikelihood,
Key
"confidence" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
phraseSuggesterConfidence,
Key
"max_errors" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
phraseSuggesterMaxErrors,
Key
"separator" Key -> Maybe Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
phraseSuggesterSeparator,
Key
"size" Key -> Maybe Size -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Size
phraseSuggesterSize,
Key
"analyzer" Key -> Maybe Analyzer -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Analyzer
phraseSuggesterAnalyzer,
Key
"shard_size" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
phraseSuggesterShardSize,
Key
"highlight" Key -> Maybe PhraseSuggesterHighlighter -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe PhraseSuggesterHighlighter
phraseSuggesterHighlight,
Key
"collate" Key -> Maybe PhraseSuggesterCollate -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe PhraseSuggesterCollate
phraseSuggesterCollate,
Key
"direct_generator"
Key -> [DirectGenerators] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [DirectGenerators]
phraseSuggesterCandidateGenerators
]
instance FromJSON PhraseSuggester where
parseJSON :: Value -> Parser PhraseSuggester
parseJSON = String
-> (Object -> Parser PhraseSuggester)
-> Value
-> Parser PhraseSuggester
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PhraseSuggester" Object -> Parser PhraseSuggester
parse
where
parse :: Object -> Parser PhraseSuggester
parse Object
o =
FieldName
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester
PhraseSuggester
(FieldName
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser FieldName
-> Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser FieldName
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"field"
Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Int)
-> Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"gram_size"
Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Int)
-> Parser
(Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"real_word_error_likelihood"
Parser
(Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Int)
-> Parser
(Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"confidence"
Parser
(Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Int)
-> Parser
(Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"max_errors"
Parser
(Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Text)
-> Parser
(Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"separator"
Parser
(Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Size)
-> Parser
(Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Size)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"size"
Parser
(Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Analyzer)
-> Parser
(Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Analyzer)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"analyzer"
Parser
(Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe Int)
-> Parser
(Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"shard_size"
Parser
(Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester)
-> Parser (Maybe PhraseSuggesterHighlighter)
-> Parser
(Maybe PhraseSuggesterCollate
-> [DirectGenerators] -> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe PhraseSuggesterHighlighter)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"highlight"
Parser
(Maybe PhraseSuggesterCollate
-> [DirectGenerators] -> PhraseSuggester)
-> Parser (Maybe PhraseSuggesterCollate)
-> Parser ([DirectGenerators] -> PhraseSuggester)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe PhraseSuggesterCollate)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"collate"
Parser ([DirectGenerators] -> PhraseSuggester)
-> Parser [DirectGenerators] -> Parser PhraseSuggester
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [DirectGenerators])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"direct_generator" Parser (Maybe [DirectGenerators])
-> [DirectGenerators] -> Parser [DirectGenerators]
forall a. Parser (Maybe a) -> a -> Parser a
.!= []
mkPhraseSuggester :: FieldName -> PhraseSuggester
mkPhraseSuggester :: FieldName -> PhraseSuggester
mkPhraseSuggester FieldName
fName =
FieldName
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Size
-> Maybe Analyzer
-> Maybe Int
-> Maybe PhraseSuggesterHighlighter
-> Maybe PhraseSuggesterCollate
-> [DirectGenerators]
-> PhraseSuggester
PhraseSuggester
FieldName
fName
Maybe Int
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Text
forall a. Maybe a
Nothing
Maybe Size
forall a. Maybe a
Nothing
Maybe Analyzer
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe PhraseSuggesterHighlighter
forall a. Maybe a
Nothing
Maybe PhraseSuggesterCollate
forall a. Maybe a
Nothing
[]
phraseSuggesterFieldLens :: Lens' PhraseSuggester FieldName
phraseSuggesterFieldLens :: Lens' PhraseSuggester FieldName
phraseSuggesterFieldLens = (PhraseSuggester -> FieldName)
-> (PhraseSuggester -> FieldName -> PhraseSuggester)
-> Lens' PhraseSuggester FieldName
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> FieldName
phraseSuggesterField (\PhraseSuggester
x FieldName
y -> PhraseSuggester
x {phraseSuggesterField = y})
phraseSuggesterGramSizeLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterGramSizeLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterGramSizeLens = (PhraseSuggester -> Maybe Int)
-> (PhraseSuggester -> Maybe Int -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Int
phraseSuggesterGramSize (\PhraseSuggester
x Maybe Int
y -> PhraseSuggester
x {phraseSuggesterGramSize = y})
phraseSuggesterRealWordErrorLikelihoodLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterRealWordErrorLikelihoodLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterRealWordErrorLikelihoodLens = (PhraseSuggester -> Maybe Int)
-> (PhraseSuggester -> Maybe Int -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Int
phraseSuggesterRealWordErrorLikelihood (\PhraseSuggester
x Maybe Int
y -> PhraseSuggester
x {phraseSuggesterRealWordErrorLikelihood = y})
phraseSuggesterConfidenceLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterConfidenceLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterConfidenceLens = (PhraseSuggester -> Maybe Int)
-> (PhraseSuggester -> Maybe Int -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Int
phraseSuggesterConfidence (\PhraseSuggester
x Maybe Int
y -> PhraseSuggester
x {phraseSuggesterConfidence = y})
phraseSuggesterMaxErrorsLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterMaxErrorsLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterMaxErrorsLens = (PhraseSuggester -> Maybe Int)
-> (PhraseSuggester -> Maybe Int -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Int
phraseSuggesterMaxErrors (\PhraseSuggester
x Maybe Int
y -> PhraseSuggester
x {phraseSuggesterMaxErrors = y})
phraseSuggesterSeparatorLens :: Lens' PhraseSuggester (Maybe Text)
phraseSuggesterSeparatorLens :: Lens' PhraseSuggester (Maybe Text)
phraseSuggesterSeparatorLens = (PhraseSuggester -> Maybe Text)
-> (PhraseSuggester -> Maybe Text -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Text
phraseSuggesterSeparator (\PhraseSuggester
x Maybe Text
y -> PhraseSuggester
x {phraseSuggesterSeparator = y})
phraseSuggesterSizeLens :: Lens' PhraseSuggester (Maybe Size)
phraseSuggesterSizeLens :: Lens' PhraseSuggester (Maybe Size)
phraseSuggesterSizeLens = (PhraseSuggester -> Maybe Size)
-> (PhraseSuggester -> Maybe Size -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Size)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Size
phraseSuggesterSize (\PhraseSuggester
x Maybe Size
y -> PhraseSuggester
x {phraseSuggesterSize = y})
phraseSuggesterAnalyzerLens :: Lens' PhraseSuggester (Maybe Analyzer)
phraseSuggesterAnalyzerLens :: Lens' PhraseSuggester (Maybe Analyzer)
phraseSuggesterAnalyzerLens = (PhraseSuggester -> Maybe Analyzer)
-> (PhraseSuggester -> Maybe Analyzer -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Analyzer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Analyzer
phraseSuggesterAnalyzer (\PhraseSuggester
x Maybe Analyzer
y -> PhraseSuggester
x {phraseSuggesterAnalyzer = y})
phraseSuggesterShardSizeLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterShardSizeLens :: Lens' PhraseSuggester (Maybe Int)
phraseSuggesterShardSizeLens = (PhraseSuggester -> Maybe Int)
-> (PhraseSuggester -> Maybe Int -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe Int
phraseSuggesterShardSize (\PhraseSuggester
x Maybe Int
y -> PhraseSuggester
x {phraseSuggesterShardSize = y})
phraseSuggesterHighlightLens :: Lens' PhraseSuggester (Maybe PhraseSuggesterHighlighter)
phraseSuggesterHighlightLens :: Lens' PhraseSuggester (Maybe PhraseSuggesterHighlighter)
phraseSuggesterHighlightLens = (PhraseSuggester -> Maybe PhraseSuggesterHighlighter)
-> (PhraseSuggester
-> Maybe PhraseSuggesterHighlighter -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe PhraseSuggesterHighlighter)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe PhraseSuggesterHighlighter
phraseSuggesterHighlight (\PhraseSuggester
x Maybe PhraseSuggesterHighlighter
y -> PhraseSuggester
x {phraseSuggesterHighlight = y})
phraseSuggesterCollateLens :: Lens' PhraseSuggester (Maybe PhraseSuggesterCollate)
phraseSuggesterCollateLens :: Lens' PhraseSuggester (Maybe PhraseSuggesterCollate)
phraseSuggesterCollateLens = (PhraseSuggester -> Maybe PhraseSuggesterCollate)
-> (PhraseSuggester
-> Maybe PhraseSuggesterCollate -> PhraseSuggester)
-> Lens' PhraseSuggester (Maybe PhraseSuggesterCollate)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> Maybe PhraseSuggesterCollate
phraseSuggesterCollate (\PhraseSuggester
x Maybe PhraseSuggesterCollate
y -> PhraseSuggester
x {phraseSuggesterCollate = y})
phraseSuggesterCandidateGeneratorsLens :: Lens' PhraseSuggester [DirectGenerators]
phraseSuggesterCandidateGeneratorsLens :: Lens' PhraseSuggester [DirectGenerators]
phraseSuggesterCandidateGeneratorsLens = (PhraseSuggester -> [DirectGenerators])
-> (PhraseSuggester -> [DirectGenerators] -> PhraseSuggester)
-> Lens' PhraseSuggester [DirectGenerators]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggester -> [DirectGenerators]
phraseSuggesterCandidateGenerators (\PhraseSuggester
x [DirectGenerators]
y -> PhraseSuggester
x {phraseSuggesterCandidateGenerators = y})
data PhraseSuggesterHighlighter = PhraseSuggesterHighlighter
{ PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPreTag :: Text,
PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPostTag :: Text
}
deriving stock (PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool
(PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool)
-> (PhraseSuggesterHighlighter
-> PhraseSuggesterHighlighter -> Bool)
-> Eq PhraseSuggesterHighlighter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool
== :: PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool
$c/= :: PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool
/= :: PhraseSuggesterHighlighter -> PhraseSuggesterHighlighter -> Bool
Eq, Int -> PhraseSuggesterHighlighter -> ShowS
[PhraseSuggesterHighlighter] -> ShowS
PhraseSuggesterHighlighter -> String
(Int -> PhraseSuggesterHighlighter -> ShowS)
-> (PhraseSuggesterHighlighter -> String)
-> ([PhraseSuggesterHighlighter] -> ShowS)
-> Show PhraseSuggesterHighlighter
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PhraseSuggesterHighlighter -> ShowS
showsPrec :: Int -> PhraseSuggesterHighlighter -> ShowS
$cshow :: PhraseSuggesterHighlighter -> String
show :: PhraseSuggesterHighlighter -> String
$cshowList :: [PhraseSuggesterHighlighter] -> ShowS
showList :: [PhraseSuggesterHighlighter] -> ShowS
Show, (forall x.
PhraseSuggesterHighlighter -> Rep PhraseSuggesterHighlighter x)
-> (forall x.
Rep PhraseSuggesterHighlighter x -> PhraseSuggesterHighlighter)
-> Generic PhraseSuggesterHighlighter
forall x.
Rep PhraseSuggesterHighlighter x -> PhraseSuggesterHighlighter
forall x.
PhraseSuggesterHighlighter -> Rep PhraseSuggesterHighlighter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
PhraseSuggesterHighlighter -> Rep PhraseSuggesterHighlighter x
from :: forall x.
PhraseSuggesterHighlighter -> Rep PhraseSuggesterHighlighter x
$cto :: forall x.
Rep PhraseSuggesterHighlighter x -> PhraseSuggesterHighlighter
to :: forall x.
Rep PhraseSuggesterHighlighter x -> PhraseSuggesterHighlighter
Generic)
phraseSuggesterHighlighterPreTagLens :: Lens' PhraseSuggesterHighlighter Text
phraseSuggesterHighlighterPreTagLens :: Lens' PhraseSuggesterHighlighter Text
phraseSuggesterHighlighterPreTagLens = (PhraseSuggesterHighlighter -> Text)
-> (PhraseSuggesterHighlighter
-> Text -> PhraseSuggesterHighlighter)
-> Lens' PhraseSuggesterHighlighter Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPreTag (\PhraseSuggesterHighlighter
x Text
y -> PhraseSuggesterHighlighter
x {phraseSuggesterHighlighterPreTag = y})
phraseSuggesterHighlighterPostTagLens :: Lens' PhraseSuggesterHighlighter Text
phraseSuggesterHighlighterPostTagLens :: Lens' PhraseSuggesterHighlighter Text
phraseSuggesterHighlighterPostTagLens = (PhraseSuggesterHighlighter -> Text)
-> (PhraseSuggesterHighlighter
-> Text -> PhraseSuggesterHighlighter)
-> Lens' PhraseSuggesterHighlighter Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPostTag (\PhraseSuggesterHighlighter
x Text
y -> PhraseSuggesterHighlighter
x {phraseSuggesterHighlighterPostTag = y})
instance ToJSON PhraseSuggesterHighlighter where
toJSON :: PhraseSuggesterHighlighter -> Value
toJSON PhraseSuggesterHighlighter {Text
phraseSuggesterHighlighterPreTag :: PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPostTag :: PhraseSuggesterHighlighter -> Text
phraseSuggesterHighlighterPreTag :: Text
phraseSuggesterHighlighterPostTag :: Text
..} =
[Pair] -> Value
object
[ Key
"pre_tag" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
phraseSuggesterHighlighterPreTag,
Key
"post_tag" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
phraseSuggesterHighlighterPostTag
]
instance FromJSON PhraseSuggesterHighlighter where
parseJSON :: Value -> Parser PhraseSuggesterHighlighter
parseJSON = String
-> (Object -> Parser PhraseSuggesterHighlighter)
-> Value
-> Parser PhraseSuggesterHighlighter
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PhraseSuggesterHighlighter" Object -> Parser PhraseSuggesterHighlighter
parse
where
parse :: Object -> Parser PhraseSuggesterHighlighter
parse Object
o =
Text -> Text -> PhraseSuggesterHighlighter
PhraseSuggesterHighlighter
(Text -> Text -> PhraseSuggesterHighlighter)
-> Parser Text -> Parser (Text -> PhraseSuggesterHighlighter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pre_tag"
Parser (Text -> PhraseSuggesterHighlighter)
-> Parser Text -> Parser PhraseSuggesterHighlighter
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"post_tag"
data PhraseSuggesterCollate = PhraseSuggesterCollate
{ PhraseSuggesterCollate -> Query
phraseSuggesterCollateTemplateQuery :: Query,
PhraseSuggesterCollate -> TemplateQueryKeyValuePairs
phraseSuggesterCollateParams :: TemplateQueryKeyValuePairs,
PhraseSuggesterCollate -> Bool
phraseSuggesterCollatePrune :: Bool
}
deriving stock (PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool
(PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool)
-> (PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool)
-> Eq PhraseSuggesterCollate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool
== :: PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool
$c/= :: PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool
/= :: PhraseSuggesterCollate -> PhraseSuggesterCollate -> Bool
Eq, Int -> PhraseSuggesterCollate -> ShowS
[PhraseSuggesterCollate] -> ShowS
PhraseSuggesterCollate -> String
(Int -> PhraseSuggesterCollate -> ShowS)
-> (PhraseSuggesterCollate -> String)
-> ([PhraseSuggesterCollate] -> ShowS)
-> Show PhraseSuggesterCollate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PhraseSuggesterCollate -> ShowS
showsPrec :: Int -> PhraseSuggesterCollate -> ShowS
$cshow :: PhraseSuggesterCollate -> String
show :: PhraseSuggesterCollate -> String
$cshowList :: [PhraseSuggesterCollate] -> ShowS
showList :: [PhraseSuggesterCollate] -> ShowS
Show, (forall x. PhraseSuggesterCollate -> Rep PhraseSuggesterCollate x)
-> (forall x.
Rep PhraseSuggesterCollate x -> PhraseSuggesterCollate)
-> Generic PhraseSuggesterCollate
forall x. Rep PhraseSuggesterCollate x -> PhraseSuggesterCollate
forall x. PhraseSuggesterCollate -> Rep PhraseSuggesterCollate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PhraseSuggesterCollate -> Rep PhraseSuggesterCollate x
from :: forall x. PhraseSuggesterCollate -> Rep PhraseSuggesterCollate x
$cto :: forall x. Rep PhraseSuggesterCollate x -> PhraseSuggesterCollate
to :: forall x. Rep PhraseSuggesterCollate x -> PhraseSuggesterCollate
Generic)
instance ToJSON PhraseSuggesterCollate where
toJSON :: PhraseSuggesterCollate -> Value
toJSON PhraseSuggesterCollate {Bool
TemplateQueryKeyValuePairs
Query
phraseSuggesterCollateTemplateQuery :: PhraseSuggesterCollate -> Query
phraseSuggesterCollateParams :: PhraseSuggesterCollate -> TemplateQueryKeyValuePairs
phraseSuggesterCollatePrune :: PhraseSuggesterCollate -> Bool
phraseSuggesterCollateTemplateQuery :: Query
phraseSuggesterCollateParams :: TemplateQueryKeyValuePairs
phraseSuggesterCollatePrune :: Bool
..} =
[Pair] -> Value
object
[ Key
"query"
Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Pair] -> Value
object
[ Key
"source" Key -> Query -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Query
phraseSuggesterCollateTemplateQuery
],
Key
"params" Key -> TemplateQueryKeyValuePairs -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TemplateQueryKeyValuePairs
phraseSuggesterCollateParams,
Key
"prune" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
phraseSuggesterCollatePrune
]
instance FromJSON PhraseSuggesterCollate where
parseJSON :: Value -> Parser PhraseSuggesterCollate
parseJSON (Object Object
o) = do
Object
query' <- Object
o Object -> Key -> Parser Object
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"query"
Query
inline' <- Object
query' Object -> Key -> Parser Query
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"source"
TemplateQueryKeyValuePairs
params' <- Object
o Object -> Key -> Parser TemplateQueryKeyValuePairs
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"params"
Bool
prune' <- Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"prune" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
PhraseSuggesterCollate -> Parser PhraseSuggesterCollate
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (PhraseSuggesterCollate -> Parser PhraseSuggesterCollate)
-> PhraseSuggesterCollate -> Parser PhraseSuggesterCollate
forall a b. (a -> b) -> a -> b
$ Query
-> TemplateQueryKeyValuePairs -> Bool -> PhraseSuggesterCollate
PhraseSuggesterCollate Query
inline' TemplateQueryKeyValuePairs
params' Bool
prune'
parseJSON Value
x = String -> Value -> Parser PhraseSuggesterCollate
forall a. String -> Value -> Parser a
typeMismatch String
"PhraseSuggesterCollate" Value
x
phraseSuggesterCollateTemplateQueryLens :: Lens' PhraseSuggesterCollate Query
phraseSuggesterCollateTemplateQueryLens :: Lens' PhraseSuggesterCollate Query
phraseSuggesterCollateTemplateQueryLens = (PhraseSuggesterCollate -> Query)
-> (PhraseSuggesterCollate -> Query -> PhraseSuggesterCollate)
-> Lens' PhraseSuggesterCollate Query
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggesterCollate -> Query
phraseSuggesterCollateTemplateQuery (\PhraseSuggesterCollate
x Query
y -> PhraseSuggesterCollate
x {phraseSuggesterCollateTemplateQuery = y})
phraseSuggesterCollateParamsLens :: Lens' PhraseSuggesterCollate TemplateQueryKeyValuePairs
phraseSuggesterCollateParamsLens :: Lens' PhraseSuggesterCollate TemplateQueryKeyValuePairs
phraseSuggesterCollateParamsLens = (PhraseSuggesterCollate -> TemplateQueryKeyValuePairs)
-> (PhraseSuggesterCollate
-> TemplateQueryKeyValuePairs -> PhraseSuggesterCollate)
-> Lens' PhraseSuggesterCollate TemplateQueryKeyValuePairs
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggesterCollate -> TemplateQueryKeyValuePairs
phraseSuggesterCollateParams (\PhraseSuggesterCollate
x TemplateQueryKeyValuePairs
y -> PhraseSuggesterCollate
x {phraseSuggesterCollateParams = y})
phraseSuggesterCollatePruneLens :: Lens' PhraseSuggesterCollate Bool
phraseSuggesterCollatePruneLens :: Lens' PhraseSuggesterCollate Bool
phraseSuggesterCollatePruneLens = (PhraseSuggesterCollate -> Bool)
-> (PhraseSuggesterCollate -> Bool -> PhraseSuggesterCollate)
-> Lens' PhraseSuggesterCollate Bool
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PhraseSuggesterCollate -> Bool
phraseSuggesterCollatePrune (\PhraseSuggesterCollate
x Bool
y -> PhraseSuggesterCollate
x {phraseSuggesterCollatePrune = y})
data SuggestOptions = SuggestOptions
{ SuggestOptions -> Text
suggestOptionsText :: Text,
SuggestOptions -> Double
suggestOptionsScore :: Double,
SuggestOptions -> Maybe Int
suggestOptionsFreq :: Maybe Int,
SuggestOptions -> Maybe Text
suggestOptionsHighlighted :: Maybe Text
}
deriving stock (SuggestOptions -> SuggestOptions -> Bool
(SuggestOptions -> SuggestOptions -> Bool)
-> (SuggestOptions -> SuggestOptions -> Bool) -> Eq SuggestOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SuggestOptions -> SuggestOptions -> Bool
== :: SuggestOptions -> SuggestOptions -> Bool
$c/= :: SuggestOptions -> SuggestOptions -> Bool
/= :: SuggestOptions -> SuggestOptions -> Bool
Eq, ReadPrec [SuggestOptions]
ReadPrec SuggestOptions
Int -> ReadS SuggestOptions
ReadS [SuggestOptions]
(Int -> ReadS SuggestOptions)
-> ReadS [SuggestOptions]
-> ReadPrec SuggestOptions
-> ReadPrec [SuggestOptions]
-> Read SuggestOptions
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SuggestOptions
readsPrec :: Int -> ReadS SuggestOptions
$creadList :: ReadS [SuggestOptions]
readList :: ReadS [SuggestOptions]
$creadPrec :: ReadPrec SuggestOptions
readPrec :: ReadPrec SuggestOptions
$creadListPrec :: ReadPrec [SuggestOptions]
readListPrec :: ReadPrec [SuggestOptions]
Read, Int -> SuggestOptions -> ShowS
[SuggestOptions] -> ShowS
SuggestOptions -> String
(Int -> SuggestOptions -> ShowS)
-> (SuggestOptions -> String)
-> ([SuggestOptions] -> ShowS)
-> Show SuggestOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SuggestOptions -> ShowS
showsPrec :: Int -> SuggestOptions -> ShowS
$cshow :: SuggestOptions -> String
show :: SuggestOptions -> String
$cshowList :: [SuggestOptions] -> ShowS
showList :: [SuggestOptions] -> ShowS
Show)
instance FromJSON SuggestOptions where
parseJSON :: Value -> Parser SuggestOptions
parseJSON = String
-> (Object -> Parser SuggestOptions)
-> Value
-> Parser SuggestOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SuggestOptions" Object -> Parser SuggestOptions
parse
where
parse :: Object -> Parser SuggestOptions
parse Object
o =
Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
SuggestOptions
(Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions)
-> Parser Text
-> Parser (Double -> Maybe Int -> Maybe Text -> SuggestOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"text"
Parser (Double -> Maybe Int -> Maybe Text -> SuggestOptions)
-> Parser Double
-> Parser (Maybe Int -> Maybe Text -> SuggestOptions)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Double
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"score"
Parser (Maybe Int -> Maybe Text -> SuggestOptions)
-> Parser (Maybe Int) -> Parser (Maybe Text -> SuggestOptions)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"freq"
Parser (Maybe Text -> SuggestOptions)
-> Parser (Maybe Text) -> Parser SuggestOptions
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"highlighted"
suggestOptionsTextLens :: Lens' SuggestOptions Text
suggestOptionsTextLens :: Lens' SuggestOptions Text
suggestOptionsTextLens = (SuggestOptions -> Text)
-> (SuggestOptions -> Text -> SuggestOptions)
-> Lens' SuggestOptions Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestOptions -> Text
suggestOptionsText (\SuggestOptions
x Text
y -> SuggestOptions
x {suggestOptionsText = y})
suggestOptionsScoreLens :: Lens' SuggestOptions Double
suggestOptionsScoreLens :: Lens' SuggestOptions Double
suggestOptionsScoreLens = (SuggestOptions -> Double)
-> (SuggestOptions -> Double -> SuggestOptions)
-> Lens' SuggestOptions Double
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestOptions -> Double
suggestOptionsScore (\SuggestOptions
x Double
y -> SuggestOptions
x {suggestOptionsScore = y})
suggestOptionsFreqLens :: Lens' SuggestOptions (Maybe Int)
suggestOptionsFreqLens :: Lens' SuggestOptions (Maybe Int)
suggestOptionsFreqLens = (SuggestOptions -> Maybe Int)
-> (SuggestOptions -> Maybe Int -> SuggestOptions)
-> Lens' SuggestOptions (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestOptions -> Maybe Int
suggestOptionsFreq (\SuggestOptions
x Maybe Int
y -> SuggestOptions
x {suggestOptionsFreq = y})
suggestOptionsHighlightedLens :: Lens' SuggestOptions (Maybe Text)
suggestOptionsHighlightedLens :: Lens' SuggestOptions (Maybe Text)
suggestOptionsHighlightedLens = (SuggestOptions -> Maybe Text)
-> (SuggestOptions -> Maybe Text -> SuggestOptions)
-> Lens' SuggestOptions (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestOptions -> Maybe Text
suggestOptionsHighlighted (\SuggestOptions
x Maybe Text
y -> SuggestOptions
x {suggestOptionsHighlighted = y})
data SuggestResponse = SuggestResponse
{ SuggestResponse -> Text
suggestResponseText :: Text,
SuggestResponse -> Int
suggestResponseOffset :: Int,
SuggestResponse -> Int
suggestResponseLength :: Int,
SuggestResponse -> [SuggestOptions]
suggestResponseOptions :: [SuggestOptions]
}
deriving stock (SuggestResponse -> SuggestResponse -> Bool
(SuggestResponse -> SuggestResponse -> Bool)
-> (SuggestResponse -> SuggestResponse -> Bool)
-> Eq SuggestResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SuggestResponse -> SuggestResponse -> Bool
== :: SuggestResponse -> SuggestResponse -> Bool
$c/= :: SuggestResponse -> SuggestResponse -> Bool
/= :: SuggestResponse -> SuggestResponse -> Bool
Eq, ReadPrec [SuggestResponse]
ReadPrec SuggestResponse
Int -> ReadS SuggestResponse
ReadS [SuggestResponse]
(Int -> ReadS SuggestResponse)
-> ReadS [SuggestResponse]
-> ReadPrec SuggestResponse
-> ReadPrec [SuggestResponse]
-> Read SuggestResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SuggestResponse
readsPrec :: Int -> ReadS SuggestResponse
$creadList :: ReadS [SuggestResponse]
readList :: ReadS [SuggestResponse]
$creadPrec :: ReadPrec SuggestResponse
readPrec :: ReadPrec SuggestResponse
$creadListPrec :: ReadPrec [SuggestResponse]
readListPrec :: ReadPrec [SuggestResponse]
Read, Int -> SuggestResponse -> ShowS
[SuggestResponse] -> ShowS
SuggestResponse -> String
(Int -> SuggestResponse -> ShowS)
-> (SuggestResponse -> String)
-> ([SuggestResponse] -> ShowS)
-> Show SuggestResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SuggestResponse -> ShowS
showsPrec :: Int -> SuggestResponse -> ShowS
$cshow :: SuggestResponse -> String
show :: SuggestResponse -> String
$cshowList :: [SuggestResponse] -> ShowS
showList :: [SuggestResponse] -> ShowS
Show)
instance FromJSON SuggestResponse where
parseJSON :: Value -> Parser SuggestResponse
parseJSON = String
-> (Object -> Parser SuggestResponse)
-> Value
-> Parser SuggestResponse
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SuggestResponse" Object -> Parser SuggestResponse
parse
where
parse :: Object -> Parser SuggestResponse
parse Object
o =
Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
SuggestResponse
(Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse)
-> Parser Text
-> Parser (Int -> Int -> [SuggestOptions] -> SuggestResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"text"
Parser (Int -> Int -> [SuggestOptions] -> SuggestResponse)
-> Parser Int
-> Parser (Int -> [SuggestOptions] -> SuggestResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"offset"
Parser (Int -> [SuggestOptions] -> SuggestResponse)
-> Parser Int -> Parser ([SuggestOptions] -> SuggestResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"length"
Parser ([SuggestOptions] -> SuggestResponse)
-> Parser [SuggestOptions] -> Parser SuggestResponse
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [SuggestOptions]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"options"
suggestResponseTextLens :: Lens' SuggestResponse Text
suggestResponseTextLens :: Lens' SuggestResponse Text
suggestResponseTextLens = (SuggestResponse -> Text)
-> (SuggestResponse -> Text -> SuggestResponse)
-> Lens' SuggestResponse Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestResponse -> Text
suggestResponseText (\SuggestResponse
x Text
y -> SuggestResponse
x {suggestResponseText = y})
suggestResponseOffsetLens :: Lens' SuggestResponse Int
suggestResponseOffsetLens :: Lens' SuggestResponse Int
suggestResponseOffsetLens = (SuggestResponse -> Int)
-> (SuggestResponse -> Int -> SuggestResponse)
-> Lens' SuggestResponse Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestResponse -> Int
suggestResponseOffset (\SuggestResponse
x Int
y -> SuggestResponse
x {suggestResponseOffset = y})
suggestResponseLengthLens :: Lens' SuggestResponse Int
suggestResponseLengthLens :: Lens' SuggestResponse Int
suggestResponseLengthLens = (SuggestResponse -> Int)
-> (SuggestResponse -> Int -> SuggestResponse)
-> Lens' SuggestResponse Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestResponse -> Int
suggestResponseLength (\SuggestResponse
x Int
y -> SuggestResponse
x {suggestResponseLength = y})
suggestResponseOptionsLens :: Lens' SuggestResponse [SuggestOptions]
suggestResponseOptionsLens :: Lens' SuggestResponse [SuggestOptions]
suggestResponseOptionsLens = (SuggestResponse -> [SuggestOptions])
-> (SuggestResponse -> [SuggestOptions] -> SuggestResponse)
-> Lens' SuggestResponse [SuggestOptions]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens SuggestResponse -> [SuggestOptions]
suggestResponseOptions (\SuggestResponse
x [SuggestOptions]
y -> SuggestResponse
x {suggestResponseOptions = y})
data NamedSuggestionResponse = NamedSuggestionResponse
{ NamedSuggestionResponse -> Text
nsrName :: Text,
NamedSuggestionResponse -> [SuggestResponse]
nsrResponses :: [SuggestResponse]
}
deriving stock (NamedSuggestionResponse -> NamedSuggestionResponse -> Bool
(NamedSuggestionResponse -> NamedSuggestionResponse -> Bool)
-> (NamedSuggestionResponse -> NamedSuggestionResponse -> Bool)
-> Eq NamedSuggestionResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NamedSuggestionResponse -> NamedSuggestionResponse -> Bool
== :: NamedSuggestionResponse -> NamedSuggestionResponse -> Bool
$c/= :: NamedSuggestionResponse -> NamedSuggestionResponse -> Bool
/= :: NamedSuggestionResponse -> NamedSuggestionResponse -> Bool
Eq, ReadPrec [NamedSuggestionResponse]
ReadPrec NamedSuggestionResponse
Int -> ReadS NamedSuggestionResponse
ReadS [NamedSuggestionResponse]
(Int -> ReadS NamedSuggestionResponse)
-> ReadS [NamedSuggestionResponse]
-> ReadPrec NamedSuggestionResponse
-> ReadPrec [NamedSuggestionResponse]
-> Read NamedSuggestionResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS NamedSuggestionResponse
readsPrec :: Int -> ReadS NamedSuggestionResponse
$creadList :: ReadS [NamedSuggestionResponse]
readList :: ReadS [NamedSuggestionResponse]
$creadPrec :: ReadPrec NamedSuggestionResponse
readPrec :: ReadPrec NamedSuggestionResponse
$creadListPrec :: ReadPrec [NamedSuggestionResponse]
readListPrec :: ReadPrec [NamedSuggestionResponse]
Read, Int -> NamedSuggestionResponse -> ShowS
[NamedSuggestionResponse] -> ShowS
NamedSuggestionResponse -> String
(Int -> NamedSuggestionResponse -> ShowS)
-> (NamedSuggestionResponse -> String)
-> ([NamedSuggestionResponse] -> ShowS)
-> Show NamedSuggestionResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NamedSuggestionResponse -> ShowS
showsPrec :: Int -> NamedSuggestionResponse -> ShowS
$cshow :: NamedSuggestionResponse -> String
show :: NamedSuggestionResponse -> String
$cshowList :: [NamedSuggestionResponse] -> ShowS
showList :: [NamedSuggestionResponse] -> ShowS
Show)
instance FromJSON NamedSuggestionResponse where
parseJSON :: Value -> Parser NamedSuggestionResponse
parseJSON (Object Object
o) = do
Key
suggestionName' <- case Object -> [Pair]
forall v. KeyMap v -> [(Key, v)]
X.toList Object
o of
[(Key
x, Value
_)] -> Key -> Parser Key
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return Key
x
[Pair]
_ -> String -> Parser Key
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"error parsing NamedSuggestionResponse name"
[SuggestResponse]
suggestionResponses' <- Object
o Object -> Key -> Parser [SuggestResponse]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
suggestionName'
NamedSuggestionResponse -> Parser NamedSuggestionResponse
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (NamedSuggestionResponse -> Parser NamedSuggestionResponse)
-> NamedSuggestionResponse -> Parser NamedSuggestionResponse
forall a b. (a -> b) -> a -> b
$ Text -> [SuggestResponse] -> NamedSuggestionResponse
NamedSuggestionResponse (Key -> Text
toText Key
suggestionName') [SuggestResponse]
suggestionResponses'
parseJSON Value
x = String -> Value -> Parser NamedSuggestionResponse
forall a. String -> Value -> Parser a
typeMismatch String
"NamedSuggestionResponse" Value
x
nsrNameLens :: Lens' NamedSuggestionResponse Text
nsrNameLens :: Lens' NamedSuggestionResponse Text
nsrNameLens = (NamedSuggestionResponse -> Text)
-> (NamedSuggestionResponse -> Text -> NamedSuggestionResponse)
-> Lens' NamedSuggestionResponse Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens NamedSuggestionResponse -> Text
nsrName (\NamedSuggestionResponse
x Text
y -> NamedSuggestionResponse
x {nsrName = y})
nsrResponsesLens :: Lens' NamedSuggestionResponse [SuggestResponse]
nsrResponsesLens :: Lens' NamedSuggestionResponse [SuggestResponse]
nsrResponsesLens = (NamedSuggestionResponse -> [SuggestResponse])
-> (NamedSuggestionResponse
-> [SuggestResponse] -> NamedSuggestionResponse)
-> Lens' NamedSuggestionResponse [SuggestResponse]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens NamedSuggestionResponse -> [SuggestResponse]
nsrResponses (\NamedSuggestionResponse
x [SuggestResponse]
y -> NamedSuggestionResponse
x {nsrResponses = y})
data DirectGeneratorSuggestModeTypes
= DirectGeneratorSuggestModeMissing
| DirectGeneratorSuggestModePopular
| DirectGeneratorSuggestModeAlways
deriving stock (DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool
(DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool)
-> (DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool)
-> Eq DirectGeneratorSuggestModeTypes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool
== :: DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool
$c/= :: DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool
/= :: DirectGeneratorSuggestModeTypes
-> DirectGeneratorSuggestModeTypes -> Bool
Eq, Int -> DirectGeneratorSuggestModeTypes -> ShowS
[DirectGeneratorSuggestModeTypes] -> ShowS
DirectGeneratorSuggestModeTypes -> String
(Int -> DirectGeneratorSuggestModeTypes -> ShowS)
-> (DirectGeneratorSuggestModeTypes -> String)
-> ([DirectGeneratorSuggestModeTypes] -> ShowS)
-> Show DirectGeneratorSuggestModeTypes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DirectGeneratorSuggestModeTypes -> ShowS
showsPrec :: Int -> DirectGeneratorSuggestModeTypes -> ShowS
$cshow :: DirectGeneratorSuggestModeTypes -> String
show :: DirectGeneratorSuggestModeTypes -> String
$cshowList :: [DirectGeneratorSuggestModeTypes] -> ShowS
showList :: [DirectGeneratorSuggestModeTypes] -> ShowS
Show, (forall x.
DirectGeneratorSuggestModeTypes
-> Rep DirectGeneratorSuggestModeTypes x)
-> (forall x.
Rep DirectGeneratorSuggestModeTypes x
-> DirectGeneratorSuggestModeTypes)
-> Generic DirectGeneratorSuggestModeTypes
forall x.
Rep DirectGeneratorSuggestModeTypes x
-> DirectGeneratorSuggestModeTypes
forall x.
DirectGeneratorSuggestModeTypes
-> Rep DirectGeneratorSuggestModeTypes x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
DirectGeneratorSuggestModeTypes
-> Rep DirectGeneratorSuggestModeTypes x
from :: forall x.
DirectGeneratorSuggestModeTypes
-> Rep DirectGeneratorSuggestModeTypes x
$cto :: forall x.
Rep DirectGeneratorSuggestModeTypes x
-> DirectGeneratorSuggestModeTypes
to :: forall x.
Rep DirectGeneratorSuggestModeTypes x
-> DirectGeneratorSuggestModeTypes
Generic)
instance ToJSON DirectGeneratorSuggestModeTypes where
toJSON :: DirectGeneratorSuggestModeTypes -> Value
toJSON DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModeMissing = Value
"missing"
toJSON DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModePopular = Value
"popular"
toJSON DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModeAlways = Value
"always"
instance FromJSON DirectGeneratorSuggestModeTypes where
parseJSON :: Value -> Parser DirectGeneratorSuggestModeTypes
parseJSON = String
-> (Text -> Parser DirectGeneratorSuggestModeTypes)
-> Value
-> Parser DirectGeneratorSuggestModeTypes
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"DirectGeneratorSuggestModeTypes" Text -> Parser DirectGeneratorSuggestModeTypes
forall {a} {f :: * -> *}.
(Eq a, IsString a, MonadFail f, Show a) =>
a -> f DirectGeneratorSuggestModeTypes
parse
where
parse :: a -> f DirectGeneratorSuggestModeTypes
parse a
"missing" =
DirectGeneratorSuggestModeTypes
-> f DirectGeneratorSuggestModeTypes
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModeMissing
parse a
"popular" =
DirectGeneratorSuggestModeTypes
-> f DirectGeneratorSuggestModeTypes
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModePopular
parse a
"always" =
DirectGeneratorSuggestModeTypes
-> f DirectGeneratorSuggestModeTypes
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModeAlways
parse a
f =
String -> f DirectGeneratorSuggestModeTypes
forall a. String -> f a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"Unexpected DirectGeneratorSuggestModeTypes: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> a -> String
forall a. Show a => a -> String
show a
f)
data DirectGenerators = DirectGenerators
{ DirectGenerators -> FieldName
directGeneratorsField :: FieldName,
:: Maybe Int,
DirectGenerators -> DirectGeneratorSuggestModeTypes
directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes,
DirectGenerators -> Maybe Double
directGeneratorMaxEdits :: Maybe Double,
DirectGenerators -> Maybe Int
directGeneratorPrefixLength :: Maybe Int,
DirectGenerators -> Maybe Int
directGeneratorMinWordLength :: Maybe Int,
DirectGenerators -> Maybe Int
directGeneratorMaxInspections :: Maybe Int,
DirectGenerators -> Maybe Double
directGeneratorMinDocFreq :: Maybe Double,
DirectGenerators -> Maybe Double
directGeneratorMaxTermFreq :: Maybe Double,
DirectGenerators -> Maybe Text
directGeneratorPreFilter :: Maybe Text,
DirectGenerators -> Maybe Text
directGeneratorPostFilter :: Maybe Text
}
deriving stock (DirectGenerators -> DirectGenerators -> Bool
(DirectGenerators -> DirectGenerators -> Bool)
-> (DirectGenerators -> DirectGenerators -> Bool)
-> Eq DirectGenerators
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DirectGenerators -> DirectGenerators -> Bool
== :: DirectGenerators -> DirectGenerators -> Bool
$c/= :: DirectGenerators -> DirectGenerators -> Bool
/= :: DirectGenerators -> DirectGenerators -> Bool
Eq, Int -> DirectGenerators -> ShowS
[DirectGenerators] -> ShowS
DirectGenerators -> String
(Int -> DirectGenerators -> ShowS)
-> (DirectGenerators -> String)
-> ([DirectGenerators] -> ShowS)
-> Show DirectGenerators
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DirectGenerators -> ShowS
showsPrec :: Int -> DirectGenerators -> ShowS
$cshow :: DirectGenerators -> String
show :: DirectGenerators -> String
$cshowList :: [DirectGenerators] -> ShowS
showList :: [DirectGenerators] -> ShowS
Show, (forall x. DirectGenerators -> Rep DirectGenerators x)
-> (forall x. Rep DirectGenerators x -> DirectGenerators)
-> Generic DirectGenerators
forall x. Rep DirectGenerators x -> DirectGenerators
forall x. DirectGenerators -> Rep DirectGenerators x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DirectGenerators -> Rep DirectGenerators x
from :: forall x. DirectGenerators -> Rep DirectGenerators x
$cto :: forall x. Rep DirectGenerators x -> DirectGenerators
to :: forall x. Rep DirectGenerators x -> DirectGenerators
Generic)
instance ToJSON DirectGenerators where
toJSON :: DirectGenerators -> Value
toJSON DirectGenerators {Maybe Double
Maybe Int
Maybe Text
FieldName
DirectGeneratorSuggestModeTypes
directGeneratorsField :: DirectGenerators -> FieldName
directGeneratorsSize :: DirectGenerators -> Maybe Int
directGeneratorSuggestMode :: DirectGenerators -> DirectGeneratorSuggestModeTypes
directGeneratorMaxEdits :: DirectGenerators -> Maybe Double
directGeneratorPrefixLength :: DirectGenerators -> Maybe Int
directGeneratorMinWordLength :: DirectGenerators -> Maybe Int
directGeneratorMaxInspections :: DirectGenerators -> Maybe Int
directGeneratorMinDocFreq :: DirectGenerators -> Maybe Double
directGeneratorMaxTermFreq :: DirectGenerators -> Maybe Double
directGeneratorPreFilter :: DirectGenerators -> Maybe Text
directGeneratorPostFilter :: DirectGenerators -> Maybe Text
directGeneratorsField :: FieldName
directGeneratorsSize :: Maybe Int
directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes
directGeneratorMaxEdits :: Maybe Double
directGeneratorPrefixLength :: Maybe Int
directGeneratorMinWordLength :: Maybe Int
directGeneratorMaxInspections :: Maybe Int
directGeneratorMinDocFreq :: Maybe Double
directGeneratorMaxTermFreq :: Maybe Double
directGeneratorPreFilter :: Maybe Text
directGeneratorPostFilter :: Maybe Text
..} =
[Pair] -> Value
omitNulls
[ Key
"field" Key -> FieldName -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= FieldName
directGeneratorsField,
Key
"size" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
directGeneratorsSize,
Key
"suggest_mode" Key -> DirectGeneratorSuggestModeTypes -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DirectGeneratorSuggestModeTypes
directGeneratorSuggestMode,
Key
"max_edits" Key -> Maybe Double -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Double
directGeneratorMaxEdits,
Key
"prefix_length" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
directGeneratorPrefixLength,
Key
"min_word_length" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
directGeneratorMinWordLength,
Key
"max_inspections" Key -> Maybe Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
directGeneratorMaxInspections,
Key
"min_doc_freq" Key -> Maybe Double -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Double
directGeneratorMinDocFreq,
Key
"max_term_freq" Key -> Maybe Double -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Double
directGeneratorMaxTermFreq,
Key
"pre_filter" Key -> Maybe Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
directGeneratorPreFilter,
Key
"post_filter" Key -> Maybe Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
directGeneratorPostFilter
]
instance FromJSON DirectGenerators where
parseJSON :: Value -> Parser DirectGenerators
parseJSON = String
-> (Object -> Parser DirectGenerators)
-> Value
-> Parser DirectGenerators
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DirectGenerators" Object -> Parser DirectGenerators
parse
where
parse :: Object -> Parser DirectGenerators
parse Object
o =
FieldName
-> Maybe Int
-> DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators
DirectGenerators
(FieldName
-> Maybe Int
-> DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser FieldName
-> Parser
(Maybe Int
-> DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser FieldName
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"field"
Parser
(Maybe Int
-> DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser (Maybe Int)
-> Parser
(DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"size"
Parser
(DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser DirectGeneratorSuggestModeTypes
-> Parser
(Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser DirectGeneratorSuggestModeTypes
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"suggest_mode"
Parser
(Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser (Maybe Double)
-> Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"max_edits"
Parser
(Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser (Maybe Int)
-> Parser
(Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"prefix_length"
Parser
(Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser (Maybe Int)
-> Parser
(Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"min_word_length"
Parser
(Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators)
-> Parser (Maybe Int)
-> Parser
(Maybe Double
-> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"max_inspections"
Parser
(Maybe Double
-> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators)
-> Parser (Maybe Double)
-> Parser
(Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"min_doc_freq"
Parser
(Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators)
-> Parser (Maybe Double)
-> Parser (Maybe Text -> Maybe Text -> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"max_term_freq"
Parser (Maybe Text -> Maybe Text -> DirectGenerators)
-> Parser (Maybe Text) -> Parser (Maybe Text -> DirectGenerators)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"pre_filter"
Parser (Maybe Text -> DirectGenerators)
-> Parser (Maybe Text) -> Parser DirectGenerators
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"post_filter"
mkDirectGenerators :: FieldName -> DirectGenerators
mkDirectGenerators :: FieldName -> DirectGenerators
mkDirectGenerators FieldName
fn =
FieldName
-> Maybe Int
-> DirectGeneratorSuggestModeTypes
-> Maybe Double
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Double
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> DirectGenerators
DirectGenerators
FieldName
fn
Maybe Int
forall a. Maybe a
Nothing
DirectGeneratorSuggestModeTypes
DirectGeneratorSuggestModeMissing
Maybe Double
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Int
forall a. Maybe a
Nothing
Maybe Double
forall a. Maybe a
Nothing
Maybe Double
forall a. Maybe a
Nothing
Maybe Text
forall a. Maybe a
Nothing
Maybe Text
forall a. Maybe a
Nothing
directGeneratorsFieldLens :: Lens' DirectGenerators FieldName
directGeneratorsFieldLens :: Lens' DirectGenerators FieldName
directGeneratorsFieldLens = (DirectGenerators -> FieldName)
-> (DirectGenerators -> FieldName -> DirectGenerators)
-> Lens' DirectGenerators FieldName
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> FieldName
directGeneratorsField (\DirectGenerators
x FieldName
y -> DirectGenerators
x {directGeneratorsField = y})
directGeneratorsSizeLens :: Lens' DirectGenerators (Maybe Int)
= (DirectGenerators -> Maybe Int)
-> (DirectGenerators -> Maybe Int -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Int
directGeneratorsSize (\DirectGenerators
x Maybe Int
y -> DirectGenerators
x {directGeneratorsSize = y})
directGeneratorSuggestModeLens :: Lens' DirectGenerators DirectGeneratorSuggestModeTypes
directGeneratorSuggestModeLens :: Lens' DirectGenerators DirectGeneratorSuggestModeTypes
directGeneratorSuggestModeLens = (DirectGenerators -> DirectGeneratorSuggestModeTypes)
-> (DirectGenerators
-> DirectGeneratorSuggestModeTypes -> DirectGenerators)
-> Lens' DirectGenerators DirectGeneratorSuggestModeTypes
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> DirectGeneratorSuggestModeTypes
directGeneratorSuggestMode (\DirectGenerators
x DirectGeneratorSuggestModeTypes
y -> DirectGenerators
x {directGeneratorSuggestMode = y})
directGeneratorMaxEditsLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMaxEditsLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMaxEditsLens = (DirectGenerators -> Maybe Double)
-> (DirectGenerators -> Maybe Double -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Double
directGeneratorMaxEdits (\DirectGenerators
x Maybe Double
y -> DirectGenerators
x {directGeneratorMaxEdits = y})
directGeneratorPrefixLengthLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorPrefixLengthLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorPrefixLengthLens = (DirectGenerators -> Maybe Int)
-> (DirectGenerators -> Maybe Int -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Int
directGeneratorPrefixLength (\DirectGenerators
x Maybe Int
y -> DirectGenerators
x {directGeneratorPrefixLength = y})
directGeneratorMinWordLengthLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorMinWordLengthLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorMinWordLengthLens = (DirectGenerators -> Maybe Int)
-> (DirectGenerators -> Maybe Int -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Int
directGeneratorMinWordLength (\DirectGenerators
x Maybe Int
y -> DirectGenerators
x {directGeneratorMinWordLength = y})
directGeneratorMaxInspectionsLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorMaxInspectionsLens :: Lens' DirectGenerators (Maybe Int)
directGeneratorMaxInspectionsLens = (DirectGenerators -> Maybe Int)
-> (DirectGenerators -> Maybe Int -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Int
directGeneratorMaxInspections (\DirectGenerators
x Maybe Int
y -> DirectGenerators
x {directGeneratorMaxInspections = y})
directGeneratorMinDocFreqLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMinDocFreqLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMinDocFreqLens = (DirectGenerators -> Maybe Double)
-> (DirectGenerators -> Maybe Double -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Double
directGeneratorMinDocFreq (\DirectGenerators
x Maybe Double
y -> DirectGenerators
x {directGeneratorMinDocFreq = y})
directGeneratorMaxTermFreqLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMaxTermFreqLens :: Lens' DirectGenerators (Maybe Double)
directGeneratorMaxTermFreqLens = (DirectGenerators -> Maybe Double)
-> (DirectGenerators -> Maybe Double -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Double
directGeneratorMaxTermFreq (\DirectGenerators
x Maybe Double
y -> DirectGenerators
x {directGeneratorMaxTermFreq = y})
directGeneratorPreFilterLens :: Lens' DirectGenerators (Maybe Text)
directGeneratorPreFilterLens :: Lens' DirectGenerators (Maybe Text)
directGeneratorPreFilterLens = (DirectGenerators -> Maybe Text)
-> (DirectGenerators -> Maybe Text -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Text
directGeneratorPreFilter (\DirectGenerators
x Maybe Text
y -> DirectGenerators
x {directGeneratorPreFilter = y})
directGeneratorPostFilterLens :: Lens' DirectGenerators (Maybe Text)
directGeneratorPostFilterLens :: Lens' DirectGenerators (Maybe Text)
directGeneratorPostFilterLens = (DirectGenerators -> Maybe Text)
-> (DirectGenerators -> Maybe Text -> DirectGenerators)
-> Lens' DirectGenerators (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DirectGenerators -> Maybe Text
directGeneratorPostFilter (\DirectGenerators
x Maybe Text
y -> DirectGenerators
x {directGeneratorPostFilter = y})