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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum NotebookCellKind where
  knownValues :: Set NotebookCellKind
knownValues = [NotebookCellKind] -> Set NotebookCellKind
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 = EnumBaseType NotebookCellKind
UInt
1
  toEnumBaseType NotebookCellKind
NotebookCellKind_Code = EnumBaseType NotebookCellKind
UInt
2
  fromEnumBaseType :: EnumBaseType NotebookCellKind -> Maybe NotebookCellKind
fromEnumBaseType EnumBaseType NotebookCellKind
1 = NotebookCellKind -> Maybe NotebookCellKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure NotebookCellKind
NotebookCellKind_Markup
  fromEnumBaseType EnumBaseType NotebookCellKind
2 = NotebookCellKind -> Maybe NotebookCellKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure NotebookCellKind
NotebookCellKind_Code
  fromEnumBaseType EnumBaseType NotebookCellKind
_ = Maybe NotebookCellKind
forall a. Maybe a
Nothing