package domdebugger

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

import (
	

	
	
	
	
	
)

// DOMBreakpointType DOM breakpoint type.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#type-DOMBreakpointType
type DOMBreakpointType string

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

// DOMBreakpointType values.
const (
	DOMBreakpointTypeSubtreeModified   DOMBreakpointType = "subtree-modified"
	DOMBreakpointTypeAttributeModified DOMBreakpointType = "attribute-modified"
	DOMBreakpointTypeNodeRemoved       DOMBreakpointType = "node-removed"
)

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

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

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *DOMBreakpointType) ( *jlexer.Lexer) {
	 := .String()
	switch DOMBreakpointType() {
	case DOMBreakpointTypeSubtreeModified:
		* = DOMBreakpointTypeSubtreeModified
	case DOMBreakpointTypeAttributeModified:
		* = DOMBreakpointTypeAttributeModified
	case DOMBreakpointTypeNodeRemoved:
		* = DOMBreakpointTypeNodeRemoved

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

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

// CSPViolationType cSP Violation type.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#type-CSPViolationType
type CSPViolationType string

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

// CSPViolationType values.
const (
	CSPViolationTypeTrustedtypeSinkViolation   CSPViolationType = "trustedtype-sink-violation"
	CSPViolationTypeTrustedtypePolicyViolation CSPViolationType = "trustedtype-policy-violation"
)

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

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

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *CSPViolationType) ( *jlexer.Lexer) {
	 := .String()
	switch CSPViolationType() {
	case CSPViolationTypeTrustedtypeSinkViolation:
		* = CSPViolationTypeTrustedtypeSinkViolation
	case CSPViolationTypeTrustedtypePolicyViolation:
		* = CSPViolationTypeTrustedtypePolicyViolation

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

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

// EventListener object event listener.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#type-EventListener
type EventListener struct {
	Type            string                `json:"type"`                      // EventListener's type.
	UseCapture      bool                  `json:"useCapture"`                // EventListener's useCapture.
	Passive         bool                  `json:"passive"`                   // EventListener's passive flag.
	Once            bool                  `json:"once"`                      // EventListener's once flag.
	ScriptID        runtime.ScriptID      `json:"scriptId"`                  // Script id of the handler code.
	LineNumber      int64                 `json:"lineNumber"`                // Line number in the script (0-based).
	ColumnNumber    int64                 `json:"columnNumber"`              // Column number in the script (0-based).
	Handler         *runtime.RemoteObject `json:"handler,omitempty"`         // Event handler function value.
	OriginalHandler *runtime.RemoteObject `json:"originalHandler,omitempty"` // Event original handler function value.
	BackendNodeID   cdp.BackendNodeID     `json:"backendNodeId,omitempty"`   // Node the listener is added to (if any).
}