package debugger

// Code generated by cdproto-gen. DO NOT EDIT.

import (
	

	
	
	
	
)

// BreakpointID breakpoint identifier.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-BreakpointId
type BreakpointID string

// String returns the BreakpointID as string value.
func ( BreakpointID) () string {
	return string()
}

// CallFrameID call frame identifier.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-CallFrameId
type CallFrameID string

// String returns the CallFrameID as string value.
func ( CallFrameID) () string {
	return string()
}

// Location location in the source code.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-Location
type Location struct {
	ScriptID     runtime.ScriptID `json:"scriptId"`               // Script identifier as reported in the Debugger.scriptParsed.
	LineNumber   int64            `json:"lineNumber"`             // Line number in the script (0-based).
	ColumnNumber int64            `json:"columnNumber,omitempty"` // Column number in the script (0-based).
}

// ScriptPosition location in the source code.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-ScriptPosition
type ScriptPosition struct {
	LineNumber   int64 `json:"lineNumber"`
	ColumnNumber int64 `json:"columnNumber"`
}

// LocationRange location range within one script.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-LocationRange
type LocationRange struct {
	ScriptID runtime.ScriptID `json:"scriptId"`
	Start    *ScriptPosition  `json:"start"`
	End      *ScriptPosition  `json:"end"`
}

// CallFrame JavaScript call frame. Array of call frames form the call stack.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-CallFrame
type CallFrame struct {
	CallFrameID      CallFrameID           `json:"callFrameId"`                // Call frame identifier. This identifier is only valid while the virtual machine is paused.
	FunctionName     string                `json:"functionName"`               // Name of the JavaScript function called on this call frame.
	FunctionLocation *Location             `json:"functionLocation,omitempty"` // Location in the source code.
	Location         *Location             `json:"location"`                   // Location in the source code.
	ScopeChain       []*Scope              `json:"scopeChain"`                 // Scope chain for this call frame.
	This             *runtime.RemoteObject `json:"this"`                       // this object for this call frame.
	ReturnValue      *runtime.RemoteObject `json:"returnValue,omitempty"`      // The value being returned, if the function is at return point.
	CanBeRestarted   bool                  `json:"canBeRestarted,omitempty"`   // Valid only while the VM is paused and indicates whether this frame can be restarted or not. Note that a true value here does not guarantee that Debugger#restartFrame with this CallFrameId will be successful, but it is very likely.
}

// Scope scope description.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-Scope
type Scope struct {
	Type          ScopeType             `json:"type"`   // Scope type.
	Object        *runtime.RemoteObject `json:"object"` // Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties.
	Name          string                `json:"name,omitempty"`
	StartLocation *Location             `json:"startLocation,omitempty"` // Location in the source code where scope starts
	EndLocation   *Location             `json:"endLocation,omitempty"`   // Location in the source code where scope ends
}

// SearchMatch search match for resource.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-SearchMatch
type SearchMatch struct {
	LineNumber  float64 `json:"lineNumber"`  // Line number in resource content.
	LineContent string  `json:"lineContent"` // Line with match content.
}

// BreakLocation [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-BreakLocation
type BreakLocation struct {
	ScriptID     runtime.ScriptID  `json:"scriptId"`               // Script identifier as reported in the Debugger.scriptParsed.
	LineNumber   int64             `json:"lineNumber"`             // Line number in the script (0-based).
	ColumnNumber int64             `json:"columnNumber,omitempty"` // Column number in the script (0-based).
	Type         BreakLocationType `json:"type,omitempty"`
}

// WasmDisassemblyChunk [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-WasmDisassemblyChunk
type WasmDisassemblyChunk struct {
	Lines           []string `json:"lines"`           // The next chunk of disassembled lines.
	BytecodeOffsets []int64  `json:"bytecodeOffsets"` // The bytecode offsets describing the start of each line.
}

// ScriptLanguage enum of possible script languages.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-ScriptLanguage
type ScriptLanguage string

// String returns the ScriptLanguage as string value.
func ( ScriptLanguage) () string {
	return string()
}

// ScriptLanguage values.
const (
	ScriptLanguageJavaScript  ScriptLanguage = "JavaScript"
	ScriptLanguageWebAssembly ScriptLanguage = "WebAssembly"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( ScriptLanguage) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( ScriptLanguage) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *ScriptLanguage) ( *jlexer.Lexer) {
	 := .String()
	switch ScriptLanguage() {
	case ScriptLanguageJavaScript:
		* = ScriptLanguageJavaScript
	case ScriptLanguageWebAssembly:
		* = ScriptLanguageWebAssembly

	default:
		.AddError(fmt.Errorf("unknown ScriptLanguage value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *ScriptLanguage) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// DebugSymbols debug symbols available for a wasm script.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-DebugSymbols
type DebugSymbols struct {
	Type        DebugSymbolsType `json:"type"`                  // Type of the debug symbols.
	ExternalURL string           `json:"externalURL,omitempty"` // URL of the external symbol source.
}

// ScopeType scope type.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-Scope
type ScopeType string

// String returns the ScopeType as string value.
func ( ScopeType) () string {
	return string()
}

// ScopeType values.
const (
	ScopeTypeGlobal              ScopeType = "global"
	ScopeTypeLocal               ScopeType = "local"
	ScopeTypeWith                ScopeType = "with"
	ScopeTypeClosure             ScopeType = "closure"
	ScopeTypeCatch               ScopeType = "catch"
	ScopeTypeBlock               ScopeType = "block"
	ScopeTypeScript              ScopeType = "script"
	ScopeTypeEval                ScopeType = "eval"
	ScopeTypeModule              ScopeType = "module"
	ScopeTypeWasmExpressionStack ScopeType = "wasm-expression-stack"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( ScopeType) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( ScopeType) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *ScopeType) ( *jlexer.Lexer) {
	 := .String()
	switch ScopeType() {
	case ScopeTypeGlobal:
		* = ScopeTypeGlobal
	case ScopeTypeLocal:
		* = ScopeTypeLocal
	case ScopeTypeWith:
		* = ScopeTypeWith
	case ScopeTypeClosure:
		* = ScopeTypeClosure
	case ScopeTypeCatch:
		* = ScopeTypeCatch
	case ScopeTypeBlock:
		* = ScopeTypeBlock
	case ScopeTypeScript:
		* = ScopeTypeScript
	case ScopeTypeEval:
		* = ScopeTypeEval
	case ScopeTypeModule:
		* = ScopeTypeModule
	case ScopeTypeWasmExpressionStack:
		* = ScopeTypeWasmExpressionStack

	default:
		.AddError(fmt.Errorf("unknown ScopeType value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *ScopeType) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// BreakLocationType [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-BreakLocation
type BreakLocationType string

// String returns the BreakLocationType as string value.
func ( BreakLocationType) () string {
	return string()
}

// BreakLocationType values.
const (
	BreakLocationTypeDebuggerStatement BreakLocationType = "debuggerStatement"
	BreakLocationTypeCall              BreakLocationType = "call"
	BreakLocationTypeReturn            BreakLocationType = "return"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( BreakLocationType) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( BreakLocationType) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *BreakLocationType) ( *jlexer.Lexer) {
	 := .String()
	switch BreakLocationType() {
	case BreakLocationTypeDebuggerStatement:
		* = BreakLocationTypeDebuggerStatement
	case BreakLocationTypeCall:
		* = BreakLocationTypeCall
	case BreakLocationTypeReturn:
		* = BreakLocationTypeReturn

	default:
		.AddError(fmt.Errorf("unknown BreakLocationType value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *BreakLocationType) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// DebugSymbolsType type of the debug symbols.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#type-DebugSymbols
type DebugSymbolsType string

// String returns the DebugSymbolsType as string value.
func ( DebugSymbolsType) () string {
	return string()
}

// DebugSymbolsType values.
const (
	DebugSymbolsTypeNone          DebugSymbolsType = "None"
	DebugSymbolsTypeSourceMap     DebugSymbolsType = "SourceMap"
	DebugSymbolsTypeEmbeddedDWARF DebugSymbolsType = "EmbeddedDWARF"
	DebugSymbolsTypeExternalDWARF DebugSymbolsType = "ExternalDWARF"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( DebugSymbolsType) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( DebugSymbolsType) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *DebugSymbolsType) ( *jlexer.Lexer) {
	 := .String()
	switch DebugSymbolsType() {
	case DebugSymbolsTypeNone:
		* = DebugSymbolsTypeNone
	case DebugSymbolsTypeSourceMap:
		* = DebugSymbolsTypeSourceMap
	case DebugSymbolsTypeEmbeddedDWARF:
		* = DebugSymbolsTypeEmbeddedDWARF
	case DebugSymbolsTypeExternalDWARF:
		* = DebugSymbolsTypeExternalDWARF

	default:
		.AddError(fmt.Errorf("unknown DebugSymbolsType value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *DebugSymbolsType) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// PausedReason pause reason.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#event-paused
type PausedReason string

// String returns the PausedReason as string value.
func ( PausedReason) () string {
	return string()
}

// PausedReason values.
const (
	PausedReasonAmbiguous        PausedReason = "ambiguous"
	PausedReasonAssert           PausedReason = "assert"
	PausedReasonCSPViolation     PausedReason = "CSPViolation"
	PausedReasonDebugCommand     PausedReason = "debugCommand"
	PausedReasonDOM              PausedReason = "DOM"
	PausedReasonEventListener    PausedReason = "EventListener"
	PausedReasonException        PausedReason = "exception"
	PausedReasonInstrumentation  PausedReason = "instrumentation"
	PausedReasonOOM              PausedReason = "OOM"
	PausedReasonOther            PausedReason = "other"
	PausedReasonPromiseRejection PausedReason = "promiseRejection"
	PausedReasonXHR              PausedReason = "XHR"
	PausedReasonStep             PausedReason = "step"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( PausedReason) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( PausedReason) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *PausedReason) ( *jlexer.Lexer) {
	 := .String()
	switch PausedReason() {
	case PausedReasonAmbiguous:
		* = PausedReasonAmbiguous
	case PausedReasonAssert:
		* = PausedReasonAssert
	case PausedReasonCSPViolation:
		* = PausedReasonCSPViolation
	case PausedReasonDebugCommand:
		* = PausedReasonDebugCommand
	case PausedReasonDOM:
		* = PausedReasonDOM
	case PausedReasonEventListener:
		* = PausedReasonEventListener
	case PausedReasonException:
		* = PausedReasonException
	case PausedReasonInstrumentation:
		* = PausedReasonInstrumentation
	case PausedReasonOOM:
		* = PausedReasonOOM
	case PausedReasonOther:
		* = PausedReasonOther
	case PausedReasonPromiseRejection:
		* = PausedReasonPromiseRejection
	case PausedReasonXHR:
		* = PausedReasonXHR
	case PausedReasonStep:
		* = PausedReasonStep

	default:
		.AddError(fmt.Errorf("unknown PausedReason value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *PausedReason) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// ContinueToLocationTargetCallFrames [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-continueToLocation
type ContinueToLocationTargetCallFrames string

// String returns the ContinueToLocationTargetCallFrames as string value.
func ( ContinueToLocationTargetCallFrames) () string {
	return string()
}

// ContinueToLocationTargetCallFrames values.
const (
	ContinueToLocationTargetCallFramesAny     ContinueToLocationTargetCallFrames = "any"
	ContinueToLocationTargetCallFramesCurrent ContinueToLocationTargetCallFrames = "current"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( ContinueToLocationTargetCallFrames) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( ContinueToLocationTargetCallFrames) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *ContinueToLocationTargetCallFrames) ( *jlexer.Lexer) {
	 := .String()
	switch ContinueToLocationTargetCallFrames() {
	case ContinueToLocationTargetCallFramesAny:
		* = ContinueToLocationTargetCallFramesAny
	case ContinueToLocationTargetCallFramesCurrent:
		* = ContinueToLocationTargetCallFramesCurrent

	default:
		.AddError(fmt.Errorf("unknown ContinueToLocationTargetCallFrames value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *ContinueToLocationTargetCallFrames) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// RestartFrameMode the mode parameter must be present and set to 'StepInto',
// otherwise restartFrame will error out.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-restartFrame
type RestartFrameMode string

// String returns the RestartFrameMode as string value.
func ( RestartFrameMode) () string {
	return string()
}

// RestartFrameMode values.
const (
	RestartFrameModeStepInto RestartFrameMode = "StepInto"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( RestartFrameMode) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( RestartFrameMode) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *RestartFrameMode) ( *jlexer.Lexer) {
	 := .String()
	switch RestartFrameMode() {
	case RestartFrameModeStepInto:
		* = RestartFrameModeStepInto

	default:
		.AddError(fmt.Errorf("unknown RestartFrameMode value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *RestartFrameMode) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// SetInstrumentationBreakpointInstrumentation instrumentation name.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-setInstrumentationBreakpoint
type SetInstrumentationBreakpointInstrumentation string

// String returns the SetInstrumentationBreakpointInstrumentation as string value.
func ( SetInstrumentationBreakpointInstrumentation) () string {
	return string()
}

// SetInstrumentationBreakpointInstrumentation values.
const (
	SetInstrumentationBreakpointInstrumentationBeforeScriptExecution              SetInstrumentationBreakpointInstrumentation = "beforeScriptExecution"
	SetInstrumentationBreakpointInstrumentationBeforeScriptWithSourceMapExecution SetInstrumentationBreakpointInstrumentation = "beforeScriptWithSourceMapExecution"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( SetInstrumentationBreakpointInstrumentation) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( SetInstrumentationBreakpointInstrumentation) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *SetInstrumentationBreakpointInstrumentation) ( *jlexer.Lexer) {
	 := .String()
	switch SetInstrumentationBreakpointInstrumentation() {
	case SetInstrumentationBreakpointInstrumentationBeforeScriptExecution:
		* = SetInstrumentationBreakpointInstrumentationBeforeScriptExecution
	case SetInstrumentationBreakpointInstrumentationBeforeScriptWithSourceMapExecution:
		* = SetInstrumentationBreakpointInstrumentationBeforeScriptWithSourceMapExecution

	default:
		.AddError(fmt.Errorf("unknown SetInstrumentationBreakpointInstrumentation value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *SetInstrumentationBreakpointInstrumentation) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// ExceptionsState pause on exceptions mode.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-setPauseOnExceptions
type ExceptionsState string

// String returns the ExceptionsState as string value.
func ( ExceptionsState) () string {
	return string()
}

// ExceptionsState values.
const (
	ExceptionsStateNone     ExceptionsState = "none"
	ExceptionsStateCaught   ExceptionsState = "caught"
	ExceptionsStateUncaught ExceptionsState = "uncaught"
	ExceptionsStateAll      ExceptionsState = "all"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( ExceptionsState) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( ExceptionsState) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *ExceptionsState) ( *jlexer.Lexer) {
	 := .String()
	switch ExceptionsState() {
	case ExceptionsStateNone:
		* = ExceptionsStateNone
	case ExceptionsStateCaught:
		* = ExceptionsStateCaught
	case ExceptionsStateUncaught:
		* = ExceptionsStateUncaught
	case ExceptionsStateAll:
		* = ExceptionsStateAll

	default:
		.AddError(fmt.Errorf("unknown ExceptionsState value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *ExceptionsState) ( []byte) error {
	return easyjson.Unmarshal(, )
}

// SetScriptSourceStatus whether the operation was successful or not. Only Ok
// denotes a successful live edit while the other enum variants denote why the
// live edit failed.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-setScriptSource
type SetScriptSourceStatus string

// String returns the SetScriptSourceStatus as string value.
func ( SetScriptSourceStatus) () string {
	return string()
}

// SetScriptSourceStatus values.
const (
	SetScriptSourceStatusOk                              SetScriptSourceStatus = "Ok"
	SetScriptSourceStatusCompileError                    SetScriptSourceStatus = "CompileError"
	SetScriptSourceStatusBlockedByActiveGenerator        SetScriptSourceStatus = "BlockedByActiveGenerator"
	SetScriptSourceStatusBlockedByActiveFunction         SetScriptSourceStatus = "BlockedByActiveFunction"
	SetScriptSourceStatusBlockedByTopLevelEsModuleChange SetScriptSourceStatus = "BlockedByTopLevelEsModuleChange"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( SetScriptSourceStatus) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( SetScriptSourceStatus) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *SetScriptSourceStatus) ( *jlexer.Lexer) {
	 := .String()
	switch SetScriptSourceStatus() {
	case SetScriptSourceStatusOk:
		* = SetScriptSourceStatusOk
	case SetScriptSourceStatusCompileError:
		* = SetScriptSourceStatusCompileError
	case SetScriptSourceStatusBlockedByActiveGenerator:
		* = SetScriptSourceStatusBlockedByActiveGenerator
	case SetScriptSourceStatusBlockedByActiveFunction:
		* = SetScriptSourceStatusBlockedByActiveFunction
	case SetScriptSourceStatusBlockedByTopLevelEsModuleChange:
		* = SetScriptSourceStatusBlockedByTopLevelEsModuleChange

	default:
		.AddError(fmt.Errorf("unknown SetScriptSourceStatus value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *SetScriptSourceStatus) ( []byte) error {
	return easyjson.Unmarshal(, )
}