{-# LANGUAGE DeriveLift #-}
module Data.Aeson.JSONPath.Types.Selector
(Selector (..))
where
import Data.Aeson.JSONPath.Types.Filter (LogicalOrExpr (..))
import Data.Text (Text)
import Language.Haskell.TH.Syntax (Lift)
import Prelude
data Selector a
= Name Text
| Index Int
| ArraySlice (Maybe Int, Maybe Int, Int)
| Filter (LogicalOrExpr a)
| WildcardSelector
deriving (Selector a -> Selector a -> Bool
(Selector a -> Selector a -> Bool)
-> (Selector a -> Selector a -> Bool) -> Eq (Selector a)
forall a. Eq a => Selector a -> Selector a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => Selector a -> Selector a -> Bool
== :: Selector a -> Selector a -> Bool
$c/= :: forall a. Eq a => Selector a -> Selector a -> Bool
/= :: Selector a -> Selector a -> Bool
Eq, Int -> Selector a -> ShowS
[Selector a] -> ShowS
Selector a -> String
(Int -> Selector a -> ShowS)
-> (Selector a -> String)
-> ([Selector a] -> ShowS)
-> Show (Selector a)
forall a. Show a => Int -> Selector a -> ShowS
forall a. Show a => [Selector a] -> ShowS
forall a. Show a => Selector a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> Selector a -> ShowS
showsPrec :: Int -> Selector a -> ShowS
$cshow :: forall a. Show a => Selector a -> String
show :: Selector a -> String
$cshowList :: forall a. Show a => [Selector a] -> ShowS
showList :: [Selector a] -> ShowS
Show, (forall (m :: * -> *). Quote m => Selector a -> m Exp)
-> (forall (m :: * -> *).
Quote m =>
Selector a -> Code m (Selector a))
-> Lift (Selector a)
forall a (m :: * -> *). (Lift a, Quote m) => Selector a -> m Exp
forall a (m :: * -> *).
(Lift a, Quote m) =>
Selector a -> Code m (Selector a)
forall t.
(forall (m :: * -> *). Quote m => t -> m Exp)
-> (forall (m :: * -> *). Quote m => t -> Code m t) -> Lift t
forall (m :: * -> *). Quote m => Selector a -> m Exp
forall (m :: * -> *). Quote m => Selector a -> Code m (Selector a)
$clift :: forall a (m :: * -> *). (Lift a, Quote m) => Selector a -> m Exp
lift :: forall (m :: * -> *). Quote m => Selector a -> m Exp
$cliftTyped :: forall a (m :: * -> *).
(Lift a, Quote m) =>
Selector a -> Code m (Selector a)
liftTyped :: forall (m :: * -> *). Quote m => Selector a -> Code m (Selector a)
Lift)