{- ORMOLU_DISABLE -}
{- HLINT ignore -}
-- THIS IS A GENERATED FILE, DO NOT EDIT

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.NotebookDocumentFilter where

import Control.DeepSeq
import Data.Hashable
import GHC.Generics
import Language.LSP.Protocol.Utils.Misc
import Prettyprinter
import qualified Data.Aeson as Aeson
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterNotebookType
import qualified Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterPattern
import qualified Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterScheme
import qualified Language.LSP.Protocol.Types.Common

{-|
A notebook document filter denotes a notebook document by
different properties. The properties will be match
against the notebook's URI (same as with documents)

@since 3.17.0
-}
newtype NotebookDocumentFilter = NotebookDocumentFilter (Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterNotebookType.NotebookDocumentFilterNotebookType Language.LSP.Protocol.Types.Common.|? (Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterScheme.NotebookDocumentFilterScheme Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Internal.Types.NotebookDocumentFilterPattern.NotebookDocumentFilterPattern))
  deriving newtype ([NotebookDocumentFilter] -> Value
[NotebookDocumentFilter] -> Encoding
NotebookDocumentFilter -> Bool
NotebookDocumentFilter -> Value
NotebookDocumentFilter -> Encoding
(NotebookDocumentFilter -> Value)
-> (NotebookDocumentFilter -> Encoding)
-> ([NotebookDocumentFilter] -> Value)
-> ([NotebookDocumentFilter] -> Encoding)
-> (NotebookDocumentFilter -> Bool)
-> ToJSON NotebookDocumentFilter
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: NotebookDocumentFilter -> Value
toJSON :: NotebookDocumentFilter -> Value
$ctoEncoding :: NotebookDocumentFilter -> Encoding
toEncoding :: NotebookDocumentFilter -> Encoding
$ctoJSONList :: [NotebookDocumentFilter] -> Value
toJSONList :: [NotebookDocumentFilter] -> Value
$ctoEncodingList :: [NotebookDocumentFilter] -> Encoding
toEncodingList :: [NotebookDocumentFilter] -> Encoding
$comitField :: NotebookDocumentFilter -> Bool
omitField :: NotebookDocumentFilter -> Bool
Aeson.ToJSON, Maybe NotebookDocumentFilter
Value -> Parser [NotebookDocumentFilter]
Value -> Parser NotebookDocumentFilter
(Value -> Parser NotebookDocumentFilter)
-> (Value -> Parser [NotebookDocumentFilter])
-> Maybe NotebookDocumentFilter
-> FromJSON NotebookDocumentFilter
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser NotebookDocumentFilter
parseJSON :: Value -> Parser NotebookDocumentFilter
$cparseJSONList :: Value -> Parser [NotebookDocumentFilter]
parseJSONList :: Value -> Parser [NotebookDocumentFilter]
$comittedField :: Maybe NotebookDocumentFilter
omittedField :: Maybe NotebookDocumentFilter
Aeson.FromJSON)
  deriving stock (Int -> NotebookDocumentFilter -> ShowS
[NotebookDocumentFilter] -> ShowS
NotebookDocumentFilter -> String
(Int -> NotebookDocumentFilter -> ShowS)
-> (NotebookDocumentFilter -> String)
-> ([NotebookDocumentFilter] -> ShowS)
-> Show NotebookDocumentFilter
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NotebookDocumentFilter -> ShowS
showsPrec :: Int -> NotebookDocumentFilter -> ShowS
$cshow :: NotebookDocumentFilter -> String
show :: NotebookDocumentFilter -> String
$cshowList :: [NotebookDocumentFilter] -> ShowS
showList :: [NotebookDocumentFilter] -> ShowS
Show, NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
(NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> (NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> Eq NotebookDocumentFilter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
== :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c/= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
/= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
Eq, Eq NotebookDocumentFilter
Eq NotebookDocumentFilter =>
(NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering)
-> (NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> (NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> (NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> (NotebookDocumentFilter -> NotebookDocumentFilter -> Bool)
-> (NotebookDocumentFilter
    -> NotebookDocumentFilter -> NotebookDocumentFilter)
-> (NotebookDocumentFilter
    -> NotebookDocumentFilter -> NotebookDocumentFilter)
-> Ord NotebookDocumentFilter
NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering
NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering
compare :: NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering
$c< :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
< :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c<= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
<= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c> :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
> :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c>= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
>= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$cmax :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
max :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
$cmin :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
min :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
Ord, (forall x. NotebookDocumentFilter -> Rep NotebookDocumentFilter x)
-> (forall x.
    Rep NotebookDocumentFilter x -> NotebookDocumentFilter)
-> Generic NotebookDocumentFilter
forall x. Rep NotebookDocumentFilter x -> NotebookDocumentFilter
forall x. NotebookDocumentFilter -> Rep NotebookDocumentFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NotebookDocumentFilter -> Rep NotebookDocumentFilter x
from :: forall x. NotebookDocumentFilter -> Rep NotebookDocumentFilter x
$cto :: forall x. Rep NotebookDocumentFilter x -> NotebookDocumentFilter
to :: forall x. Rep NotebookDocumentFilter x -> NotebookDocumentFilter
Generic)
  deriving anyclass (NotebookDocumentFilter -> ()
(NotebookDocumentFilter -> ()) -> NFData NotebookDocumentFilter
forall a. (a -> ()) -> NFData a
$crnf :: NotebookDocumentFilter -> ()
rnf :: NotebookDocumentFilter -> ()
NFData, Eq NotebookDocumentFilter
Eq NotebookDocumentFilter =>
(Int -> NotebookDocumentFilter -> Int)
-> (NotebookDocumentFilter -> Int)
-> Hashable NotebookDocumentFilter
Int -> NotebookDocumentFilter -> Int
NotebookDocumentFilter -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> NotebookDocumentFilter -> Int
hashWithSalt :: Int -> NotebookDocumentFilter -> Int
$chash :: NotebookDocumentFilter -> Int
hash :: NotebookDocumentFilter -> Int
Hashable)
  deriving (forall ann. NotebookDocumentFilter -> Doc ann)
-> (forall ann. [NotebookDocumentFilter] -> Doc ann)
-> Pretty NotebookDocumentFilter
forall ann. [NotebookDocumentFilter] -> Doc ann
forall ann. NotebookDocumentFilter -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. NotebookDocumentFilter -> Doc ann
pretty :: forall ann. NotebookDocumentFilter -> Doc ann
$cprettyList :: forall ann. [NotebookDocumentFilter] -> Doc ann
prettyList :: forall ann. [NotebookDocumentFilter] -> Doc ann
Pretty via (ViaJSON NotebookDocumentFilter)