{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.FileCreate 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 Data.Text
import qualified Language.LSP.Protocol.Types.Common
data FileCreate = FileCreate
{
FileCreate -> Text
_uri :: Data.Text.Text
}
deriving stock (Int -> FileCreate -> ShowS
[FileCreate] -> ShowS
FileCreate -> String
(Int -> FileCreate -> ShowS)
-> (FileCreate -> String)
-> ([FileCreate] -> ShowS)
-> Show FileCreate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FileCreate -> ShowS
showsPrec :: Int -> FileCreate -> ShowS
$cshow :: FileCreate -> String
show :: FileCreate -> String
$cshowList :: [FileCreate] -> ShowS
showList :: [FileCreate] -> ShowS
Show, FileCreate -> FileCreate -> Bool
(FileCreate -> FileCreate -> Bool)
-> (FileCreate -> FileCreate -> Bool) -> Eq FileCreate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FileCreate -> FileCreate -> Bool
== :: FileCreate -> FileCreate -> Bool
$c/= :: FileCreate -> FileCreate -> Bool
/= :: FileCreate -> FileCreate -> Bool
Eq, Eq FileCreate
Eq FileCreate =>
(FileCreate -> FileCreate -> Ordering)
-> (FileCreate -> FileCreate -> Bool)
-> (FileCreate -> FileCreate -> Bool)
-> (FileCreate -> FileCreate -> Bool)
-> (FileCreate -> FileCreate -> Bool)
-> (FileCreate -> FileCreate -> FileCreate)
-> (FileCreate -> FileCreate -> FileCreate)
-> Ord FileCreate
FileCreate -> FileCreate -> Bool
FileCreate -> FileCreate -> Ordering
FileCreate -> FileCreate -> FileCreate
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 :: FileCreate -> FileCreate -> Ordering
compare :: FileCreate -> FileCreate -> Ordering
$c< :: FileCreate -> FileCreate -> Bool
< :: FileCreate -> FileCreate -> Bool
$c<= :: FileCreate -> FileCreate -> Bool
<= :: FileCreate -> FileCreate -> Bool
$c> :: FileCreate -> FileCreate -> Bool
> :: FileCreate -> FileCreate -> Bool
$c>= :: FileCreate -> FileCreate -> Bool
>= :: FileCreate -> FileCreate -> Bool
$cmax :: FileCreate -> FileCreate -> FileCreate
max :: FileCreate -> FileCreate -> FileCreate
$cmin :: FileCreate -> FileCreate -> FileCreate
min :: FileCreate -> FileCreate -> FileCreate
Ord, (forall x. FileCreate -> Rep FileCreate x)
-> (forall x. Rep FileCreate x -> FileCreate) -> Generic FileCreate
forall x. Rep FileCreate x -> FileCreate
forall x. FileCreate -> Rep FileCreate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FileCreate -> Rep FileCreate x
from :: forall x. FileCreate -> Rep FileCreate x
$cto :: forall x. Rep FileCreate x -> FileCreate
to :: forall x. Rep FileCreate x -> FileCreate
Generic)
deriving anyclass (FileCreate -> ()
(FileCreate -> ()) -> NFData FileCreate
forall a. (a -> ()) -> NFData a
$crnf :: FileCreate -> ()
rnf :: FileCreate -> ()
NFData, Eq FileCreate
Eq FileCreate =>
(Int -> FileCreate -> Int)
-> (FileCreate -> Int) -> Hashable FileCreate
Int -> FileCreate -> Int
FileCreate -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> FileCreate -> Int
hashWithSalt :: Int -> FileCreate -> Int
$chash :: FileCreate -> Int
hash :: FileCreate -> Int
Hashable)
deriving (forall ann. FileCreate -> Doc ann)
-> (forall ann. [FileCreate] -> Doc ann) -> Pretty FileCreate
forall ann. [FileCreate] -> Doc ann
forall ann. FileCreate -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. FileCreate -> Doc ann
pretty :: forall ann. FileCreate -> Doc ann
$cprettyList :: forall ann. [FileCreate] -> Doc ann
prettyList :: forall ann. [FileCreate] -> Doc ann
Pretty via (ViaJSON FileCreate)
instance Aeson.ToJSON FileCreate where
toJSON :: FileCreate -> Value
toJSON (FileCreate Text
arg0) = [Pair] -> Value
Aeson.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Pair]] -> [Pair]) -> [[Pair]] -> [Pair]
forall a b. (a -> b) -> a -> b
$ [[Key
"uri" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
Aeson..= Text
arg0]]
instance Aeson.FromJSON FileCreate where
parseJSON :: Value -> Parser FileCreate
parseJSON = String
-> (Object -> Parser FileCreate) -> Value -> Parser FileCreate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"FileCreate" ((Object -> Parser FileCreate) -> Value -> Parser FileCreate)
-> (Object -> Parser FileCreate) -> Value -> Parser FileCreate
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Text -> FileCreate
FileCreate (Text -> FileCreate) -> Parser Text -> Parser FileCreate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
Aeson..: Key
"uri"