{- 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] -> 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)