packages feed

phoityne-vscode-0.0.3.0: app/Phoityne/IO/GUI/VSCode/TH/SetBreakpointsResponseJSON.hs

{-# LANGUAGE TemplateHaskell     #-}


module Phoityne.IO.GUI.VSCode.TH.SetBreakpointsResponseJSON where

import Data.Aeson.TH

import Phoityne.Utility
import Phoityne.IO.GUI.VSCode.TH.SetBreakpointsRequestJSON
import Phoityne.IO.GUI.VSCode.TH.SetBreakpointsResponseBodyJSON

-- |
--   Response to "setBreakpoints" request.
--   Returned is information about each breakpoint created by this request.
--   This includes the actual code location and whether the breakpoint could be verified.
--   The breakpoints returned are in the same order as the elements of the 'breakpoints'
--   (or the deprecated 'lines') in the SetBreakpointsArguments.
--
data SetBreakpointsResponse =
  SetBreakpointsResponse {
    seqSetBreakpointsResponse         :: Int     -- Sequence number
  , typeSetBreakpointsResponse        :: String  -- One of "request", "response", or "event"
  , request_seqSetBreakpointsResponse :: Int     -- Sequence number of the corresponding request
  , successSetBreakpointsResponse     :: Bool    -- Outcome of the request
  , commandSetBreakpointsResponse     :: String  -- The command requested 
  , messageSetBreakpointsResponse     :: String  -- Contains error message if success == false.
  , bodySetBreakpointsResponse        :: SetBreakpointsResponseBody
  } deriving (Show, Read, Eq)

$(deriveJSON defaultOptions { fieldLabelModifier = rdrop (length "SetBreakpointsResponse") } ''SetBreakpointsResponse)


-- |
--
defaultSetBreakpointsResponse :: Int -> SetBreakpointsRequest ->  SetBreakpointsResponse
defaultSetBreakpointsResponse seq (SetBreakpointsRequest reqSeq _ _ _) =
  SetBreakpointsResponse seq "response" reqSeq True "setBreakpoints" "" defaultSetBreakpointsResponseBody


-- |
--
errorSetBreakpointsResponse :: Int -> SetBreakpointsRequest -> String -> SetBreakpointsResponse
errorSetBreakpointsResponse seq (SetBreakpointsRequest reqSeq _ _ _) msg =
  SetBreakpointsResponse seq "response" reqSeq False "setBreakpoints" msg defaultSetBreakpointsResponseBody