{- 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.TextDocumentContentChangeEvent 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.TextDocumentContentChangePartial
import qualified Language.LSP.Protocol.Internal.Types.TextDocumentContentChangeWholeDocument
import qualified Language.LSP.Protocol.Types.Common

{-|
An event describing a change to a text document. If only a text is provided
it is considered to be the full content of the document.
-}
newtype TextDocumentContentChangeEvent = TextDocumentContentChangeEvent (Language.LSP.Protocol.Internal.Types.TextDocumentContentChangePartial.TextDocumentContentChangePartial Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Internal.Types.TextDocumentContentChangeWholeDocument.TextDocumentContentChangeWholeDocument)
  deriving newtype ([TextDocumentContentChangeEvent] -> Value
[TextDocumentContentChangeEvent] -> Encoding
TextDocumentContentChangeEvent -> Bool
TextDocumentContentChangeEvent -> Value
TextDocumentContentChangeEvent -> Encoding
(TextDocumentContentChangeEvent -> Value)
-> (TextDocumentContentChangeEvent -> Encoding)
-> ([TextDocumentContentChangeEvent] -> Value)
-> ([TextDocumentContentChangeEvent] -> Encoding)
-> (TextDocumentContentChangeEvent -> Bool)
-> ToJSON TextDocumentContentChangeEvent
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: TextDocumentContentChangeEvent -> Value
toJSON :: TextDocumentContentChangeEvent -> Value
$ctoEncoding :: TextDocumentContentChangeEvent -> Encoding
toEncoding :: TextDocumentContentChangeEvent -> Encoding
$ctoJSONList :: [TextDocumentContentChangeEvent] -> Value
toJSONList :: [TextDocumentContentChangeEvent] -> Value
$ctoEncodingList :: [TextDocumentContentChangeEvent] -> Encoding
toEncodingList :: [TextDocumentContentChangeEvent] -> Encoding
$comitField :: TextDocumentContentChangeEvent -> Bool
omitField :: TextDocumentContentChangeEvent -> Bool
Aeson.ToJSON, Maybe TextDocumentContentChangeEvent
Value -> Parser [TextDocumentContentChangeEvent]
Value -> Parser TextDocumentContentChangeEvent
(Value -> Parser TextDocumentContentChangeEvent)
-> (Value -> Parser [TextDocumentContentChangeEvent])
-> Maybe TextDocumentContentChangeEvent
-> FromJSON TextDocumentContentChangeEvent
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser TextDocumentContentChangeEvent
parseJSON :: Value -> Parser TextDocumentContentChangeEvent
$cparseJSONList :: Value -> Parser [TextDocumentContentChangeEvent]
parseJSONList :: Value -> Parser [TextDocumentContentChangeEvent]
$comittedField :: Maybe TextDocumentContentChangeEvent
omittedField :: Maybe TextDocumentContentChangeEvent
Aeson.FromJSON)
  deriving stock (Int -> TextDocumentContentChangeEvent -> ShowS
[TextDocumentContentChangeEvent] -> ShowS
TextDocumentContentChangeEvent -> String
(Int -> TextDocumentContentChangeEvent -> ShowS)
-> (TextDocumentContentChangeEvent -> String)
-> ([TextDocumentContentChangeEvent] -> ShowS)
-> Show TextDocumentContentChangeEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TextDocumentContentChangeEvent -> ShowS
showsPrec :: Int -> TextDocumentContentChangeEvent -> ShowS
$cshow :: TextDocumentContentChangeEvent -> String
show :: TextDocumentContentChangeEvent -> String
$cshowList :: [TextDocumentContentChangeEvent] -> ShowS
showList :: [TextDocumentContentChangeEvent] -> ShowS
Show, TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
(TextDocumentContentChangeEvent
 -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> Eq TextDocumentContentChangeEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
== :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c/= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
/= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
Eq, Eq TextDocumentContentChangeEvent
Eq TextDocumentContentChangeEvent =>
(TextDocumentContentChangeEvent
 -> TextDocumentContentChangeEvent -> Ordering)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent)
-> Ord TextDocumentContentChangeEvent
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
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 :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
compare :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
$c< :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
< :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c<= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
<= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c> :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
> :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c>= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
>= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$cmax :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
max :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
$cmin :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
min :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
Ord, (forall x.
 TextDocumentContentChangeEvent
 -> Rep TextDocumentContentChangeEvent x)
-> (forall x.
    Rep TextDocumentContentChangeEvent x
    -> TextDocumentContentChangeEvent)
-> Generic TextDocumentContentChangeEvent
forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
from :: forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
$cto :: forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
to :: forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
Generic)
  deriving anyclass (TextDocumentContentChangeEvent -> ()
(TextDocumentContentChangeEvent -> ())
-> NFData TextDocumentContentChangeEvent
forall a. (a -> ()) -> NFData a
$crnf :: TextDocumentContentChangeEvent -> ()
rnf :: TextDocumentContentChangeEvent -> ()
NFData, Eq TextDocumentContentChangeEvent
Eq TextDocumentContentChangeEvent =>
(Int -> TextDocumentContentChangeEvent -> Int)
-> (TextDocumentContentChangeEvent -> Int)
-> Hashable TextDocumentContentChangeEvent
Int -> TextDocumentContentChangeEvent -> Int
TextDocumentContentChangeEvent -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TextDocumentContentChangeEvent -> Int
hashWithSalt :: Int -> TextDocumentContentChangeEvent -> Int
$chash :: TextDocumentContentChangeEvent -> Int
hash :: TextDocumentContentChangeEvent -> Int
Hashable)
  deriving (forall ann. TextDocumentContentChangeEvent -> Doc ann)
-> (forall ann. [TextDocumentContentChangeEvent] -> Doc ann)
-> Pretty TextDocumentContentChangeEvent
forall ann. [TextDocumentContentChangeEvent] -> Doc ann
forall ann. TextDocumentContentChangeEvent -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TextDocumentContentChangeEvent -> Doc ann
pretty :: forall ann. TextDocumentContentChangeEvent -> Doc ann
$cprettyList :: forall ann. [TextDocumentContentChangeEvent] -> Doc ann
prettyList :: forall ann. [TextDocumentContentChangeEvent] -> Doc ann
Pretty via (ViaJSON TextDocumentContentChangeEvent)