{- 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 as Row
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Data.Text
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 ((Row.Rec ("notebookType" Row..== Data.Text.Text Row..+ ("scheme" Row..== (Maybe Data.Text.Text) Row..+ ("pattern" Row..== (Maybe Data.Text.Text) Row..+ Row.Empty)))) Language.LSP.Protocol.Types.Common.|? ((Row.Rec ("notebookType" Row..== (Maybe Data.Text.Text) Row..+ ("scheme" Row..== Data.Text.Text Row..+ ("pattern" Row..== (Maybe Data.Text.Text) Row..+ Row.Empty)))) Language.LSP.Protocol.Types.Common.|? (Row.Rec ("notebookType" Row..== (Maybe Data.Text.Text) Row..+ ("scheme" Row..== (Maybe Data.Text.Text) Row..+ ("pattern" Row..== Data.Text.Text Row..+ Row.Empty))))))
  deriving newtype ([NotebookDocumentFilter] -> Encoding
[NotebookDocumentFilter] -> Value
NotebookDocumentFilter -> Encoding
NotebookDocumentFilter -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [NotebookDocumentFilter] -> Encoding
$ctoEncodingList :: [NotebookDocumentFilter] -> Encoding
toJSONList :: [NotebookDocumentFilter] -> Value
$ctoJSONList :: [NotebookDocumentFilter] -> Value
toEncoding :: NotebookDocumentFilter -> Encoding
$ctoEncoding :: NotebookDocumentFilter -> Encoding
toJSON :: NotebookDocumentFilter -> Value
$ctoJSON :: NotebookDocumentFilter -> Value
Aeson.ToJSON, Value -> Parser [NotebookDocumentFilter]
Value -> Parser NotebookDocumentFilter
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [NotebookDocumentFilter]
$cparseJSONList :: Value -> Parser [NotebookDocumentFilter]
parseJSON :: Value -> Parser NotebookDocumentFilter
$cparseJSON :: Value -> Parser NotebookDocumentFilter
Aeson.FromJSON)
  deriving stock (Int -> NotebookDocumentFilter -> ShowS
[NotebookDocumentFilter] -> ShowS
NotebookDocumentFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NotebookDocumentFilter] -> ShowS
$cshowList :: [NotebookDocumentFilter] -> ShowS
show :: NotebookDocumentFilter -> String
$cshow :: NotebookDocumentFilter -> String
showsPrec :: Int -> NotebookDocumentFilter -> ShowS
$cshowsPrec :: Int -> NotebookDocumentFilter -> ShowS
Show, NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c/= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
== :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$c== :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
Eq, Eq 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
min :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
$cmin :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
max :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
$cmax :: NotebookDocumentFilter
-> NotebookDocumentFilter -> NotebookDocumentFilter
>= :: NotebookDocumentFilter -> NotebookDocumentFilter -> Bool
$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
compare :: NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering
$ccompare :: NotebookDocumentFilter -> NotebookDocumentFilter -> Ordering
Ord, 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
$cto :: forall x. Rep NotebookDocumentFilter x -> NotebookDocumentFilter
$cfrom :: forall x. NotebookDocumentFilter -> Rep NotebookDocumentFilter x
Generic)
  deriving anyclass (NotebookDocumentFilter -> ()
forall a. (a -> ()) -> NFData a
rnf :: NotebookDocumentFilter -> ()
$crnf :: NotebookDocumentFilter -> ()
NFData, Eq NotebookDocumentFilter
Int -> NotebookDocumentFilter -> Int
NotebookDocumentFilter -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: NotebookDocumentFilter -> Int
$chash :: NotebookDocumentFilter -> Int
hashWithSalt :: Int -> NotebookDocumentFilter -> Int
$chashWithSalt :: Int -> NotebookDocumentFilter -> Int
Hashable)
  deriving forall ann. [NotebookDocumentFilter] -> Doc ann
forall ann. NotebookDocumentFilter -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
prettyList :: forall ann. [NotebookDocumentFilter] -> Doc ann
$cprettyList :: forall ann. [NotebookDocumentFilter] -> Doc ann
pretty :: forall ann. NotebookDocumentFilter -> Doc ann
$cpretty :: forall ann. NotebookDocumentFilter -> Doc ann
Pretty via (ViaJSON NotebookDocumentFilter)