{- 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.InlineValue 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.InlineValueEvaluatableExpression
import qualified Language.LSP.Protocol.Internal.Types.InlineValueText
import qualified Language.LSP.Protocol.Internal.Types.InlineValueVariableLookup
import qualified Language.LSP.Protocol.Types.Common

{-|
Inline value information can be provided by different means:
- directly as a text value (class InlineValueText).
- as a name to use for a variable lookup (class InlineValueVariableLookup)
- as an evaluatable expression (class InlineValueEvaluatableExpression)
The InlineValue types combines all inline value types into one type.

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