{- 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.NotebookCellKind 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.Set
import qualified Data.String
import qualified Language.LSP.Protocol.Types.Common
import qualified Language.LSP.Protocol.Types.LspEnum

{-|
A notebook cell kind.

@since 3.17.0
-}
data NotebookCellKind = 
    {-|
  A markup-cell is formatted source that is used for display.
  -}
  NotebookCellKind_Markup
  | {-|
  A code-cell is source code.
  -}
  NotebookCellKind_Code
  deriving stock (Int -> NotebookCellKind -> ShowS
[NotebookCellKind] -> ShowS
NotebookCellKind -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NotebookCellKind] -> ShowS
$cshowList :: [NotebookCellKind] -> ShowS
show :: NotebookCellKind -> String
$cshow :: NotebookCellKind -> String
showsPrec :: Int -> NotebookCellKind -> ShowS
$cshowsPrec :: Int -> NotebookCellKind -> ShowS
Show, NotebookCellKind -> NotebookCellKind -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NotebookCellKind -> NotebookCellKind -> Bool
$c/= :: NotebookCellKind -> NotebookCellKind -> Bool
== :: NotebookCellKind -> NotebookCellKind -> Bool
$c== :: NotebookCellKind -> NotebookCellKind -> Bool
Eq, Eq NotebookCellKind
NotebookCellKind -> NotebookCellKind -> Bool
NotebookCellKind -> NotebookCellKind -> Ordering
NotebookCellKind -> NotebookCellKind -> NotebookCellKind
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 :: NotebookCellKind -> NotebookCellKind -> NotebookCellKind
$cmin :: NotebookCellKind -> NotebookCellKind -> NotebookCellKind
max :: NotebookCellKind -> NotebookCellKind -> NotebookCellKind
$cmax :: NotebookCellKind -> NotebookCellKind -> NotebookCellKind
>= :: NotebookCellKind -> NotebookCellKind -> Bool
$c>= :: NotebookCellKind -> NotebookCellKind -> Bool
> :: NotebookCellKind -> NotebookCellKind -> Bool
$c> :: NotebookCellKind -> NotebookCellKind -> Bool
<= :: NotebookCellKind -> NotebookCellKind -> Bool
$c<= :: NotebookCellKind -> NotebookCellKind -> Bool
< :: NotebookCellKind -> NotebookCellKind -> Bool
$c< :: NotebookCellKind -> NotebookCellKind -> Bool
compare :: NotebookCellKind -> NotebookCellKind -> Ordering
$ccompare :: NotebookCellKind -> NotebookCellKind -> Ordering
Ord, forall x. Rep NotebookCellKind x -> NotebookCellKind
forall x. NotebookCellKind -> Rep NotebookCellKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NotebookCellKind x -> NotebookCellKind
$cfrom :: forall x. NotebookCellKind -> Rep NotebookCellKind x
Generic)
  deriving anyclass (NotebookCellKind -> ()
forall a. (a -> ()) -> NFData a
rnf :: NotebookCellKind -> ()
$crnf :: NotebookCellKind -> ()
NFData, Eq NotebookCellKind
Int -> NotebookCellKind -> Int
NotebookCellKind -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: NotebookCellKind -> Int
$chash :: NotebookCellKind -> Int
hashWithSalt :: Int -> NotebookCellKind -> Int
$chashWithSalt :: Int -> NotebookCellKind -> Int
Hashable)
  deriving ( [NotebookCellKind] -> Encoding
[NotebookCellKind] -> Value
NotebookCellKind -> Encoding
NotebookCellKind -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [NotebookCellKind] -> Encoding
$ctoEncodingList :: [NotebookCellKind] -> Encoding
toJSONList :: [NotebookCellKind] -> Value
$ctoJSONList :: [NotebookCellKind] -> Value
toEncoding :: NotebookCellKind -> Encoding
$ctoEncoding :: NotebookCellKind -> Encoding
toJSON :: NotebookCellKind -> Value
$ctoJSON :: NotebookCellKind -> Value
Aeson.ToJSON
  , Value -> Parser [NotebookCellKind]
Value -> Parser NotebookCellKind
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [NotebookCellKind]
$cparseJSONList :: Value -> Parser [NotebookCellKind]
parseJSON :: Value -> Parser NotebookCellKind
$cparseJSON :: Value -> Parser NotebookCellKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum NotebookCellKind Language.LSP.Protocol.Types.Common.UInt)
  deriving forall ann. [NotebookCellKind] -> Doc ann
forall ann. NotebookCellKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
prettyList :: forall ann. [NotebookCellKind] -> Doc ann
$cprettyList :: forall ann. [NotebookCellKind] -> Doc ann
pretty :: forall ann. NotebookCellKind -> Doc ann
$cpretty :: forall ann. NotebookCellKind -> Doc ann
Pretty via (ViaJSON NotebookCellKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum NotebookCellKind where
  knownValues :: Set NotebookCellKind
knownValues = forall a. Ord a => [a] -> Set a
Data.Set.fromList [NotebookCellKind
NotebookCellKind_Markup
    ,NotebookCellKind
NotebookCellKind_Code]
  type EnumBaseType NotebookCellKind = Language.LSP.Protocol.Types.Common.UInt
  toEnumBaseType :: NotebookCellKind -> EnumBaseType NotebookCellKind
toEnumBaseType NotebookCellKind
NotebookCellKind_Markup = UInt
1
  toEnumBaseType NotebookCellKind
NotebookCellKind_Code = UInt
2
  fromEnumBaseType :: EnumBaseType NotebookCellKind -> Maybe NotebookCellKind
fromEnumBaseType EnumBaseType NotebookCellKind
1 = forall (f :: * -> *) a. Applicative f => a -> f a
pure NotebookCellKind
NotebookCellKind_Markup
  fromEnumBaseType EnumBaseType NotebookCellKind
2 = forall (f :: * -> *) a. Applicative f => a -> f a
pure NotebookCellKind
NotebookCellKind_Code
  fromEnumBaseType EnumBaseType NotebookCellKind
_ = forall a. Maybe a
Nothing