phoityne-vscode-0.0.3.0: app/Phoityne/IO/GUI/VSCode/TH/VariablesResponseJSON.hs
{-# LANGUAGE TemplateHaskell #-}
module Phoityne.IO.GUI.VSCode.TH.VariablesResponseJSON where
import Data.Aeson.TH
import Phoityne.Utility
import Phoityne.IO.GUI.VSCode.TH.VariablesBodyJSON
import Phoityne.IO.GUI.VSCode.TH.VariablesRequestJSON
-- |
-- Response to "variables" request.
--
data VariablesResponse =
VariablesResponse {
seqVariablesResponse :: Int -- Sequence number
, typeVariablesResponse :: String -- One of "request", "response", or "event"
, request_seqVariablesResponse :: Int -- Sequence number of the corresponding request
, successVariablesResponse :: Bool -- Outcome of the request
, commandVariablesResponse :: String -- The command requested
, messageVariablesResponse :: String -- Contains error message if success == false.
, bodyVariablesResponse :: VariablesBody
} deriving (Show, Read, Eq)
$(deriveJSON defaultOptions { fieldLabelModifier = rdrop (length "VariablesResponse") } ''VariablesResponse)
-- |
--
defaultVariablesResponse :: Int -> VariablesRequest -> VariablesResponse
defaultVariablesResponse seq (VariablesRequest reqSeq _ _ _) =
VariablesResponse seq "response" reqSeq True "variables" "" defaultVariablesBody
-- |
--
errorVariablesResponse :: Int -> VariablesRequest -> String -> VariablesResponse
errorVariablesResponse seq (VariablesRequest reqSeq _ _ _) msg =
VariablesResponse seq "response" reqSeq False "variables" msg defaultVariablesBody