// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.

package cast

import (
	json 
	easyjson 
	jlexer 
	jwriter 
)

// suppress unused package warning
var (
	_ *json.RawMessage
	_ *jlexer.Lexer
	_ *jwriter.Writer
	_ easyjson.Marshaler
)

func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast( *jlexer.Lexer,  *StopCastingParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "sinkName":
			.SinkName = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast( *jwriter.Writer,  StopCastingParams) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"sinkName\":"
		.RawString([1:])
		.String(string(.SinkName))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( StopCastingParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( StopCastingParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *StopCastingParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *StopCastingParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast1( *jlexer.Lexer,  *StartTabMirroringParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "sinkName":
			.SinkName = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast1( *jwriter.Writer,  StartTabMirroringParams) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"sinkName\":"
		.RawString([1:])
		.String(string(.SinkName))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( StartTabMirroringParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast1(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( StartTabMirroringParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast1(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *StartTabMirroringParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast1(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *StartTabMirroringParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast1(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast2( *jlexer.Lexer,  *StartDesktopMirroringParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "sinkName":
			.SinkName = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast2( *jwriter.Writer,  StartDesktopMirroringParams) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"sinkName\":"
		.RawString([1:])
		.String(string(.SinkName))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( StartDesktopMirroringParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast2(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( StartDesktopMirroringParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast2(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *StartDesktopMirroringParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast2(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *StartDesktopMirroringParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast2(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast3( *jlexer.Lexer,  *Sink) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "name":
			.Name = string(.String())
		case "id":
			.ID = string(.String())
		case "session":
			.Session = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast3( *jwriter.Writer,  Sink) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"name\":"
		.RawString([1:])
		.String(string(.Name))
	}
	{
		const  string = ",\"id\":"
		.RawString()
		.String(string(.ID))
	}
	if .Session != "" {
		const  string = ",\"session\":"
		.RawString()
		.String(string(.Session))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( Sink) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast3(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( Sink) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast3(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *Sink) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast3(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *Sink) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast3(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast4( *jlexer.Lexer,  *SetSinkToUseParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "sinkName":
			.SinkName = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast4( *jwriter.Writer,  SetSinkToUseParams) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"sinkName\":"
		.RawString([1:])
		.String(string(.SinkName))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( SetSinkToUseParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast4(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( SetSinkToUseParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast4(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *SetSinkToUseParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast4(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *SetSinkToUseParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast4(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast5( *jlexer.Lexer,  *EventSinksUpdated) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "sinks":
			if .IsNull() {
				.Skip()
				.Sinks = nil
			} else {
				.Delim('[')
				if .Sinks == nil {
					if !.IsDelim(']') {
						.Sinks = make([]*Sink, 0, 8)
					} else {
						.Sinks = []*Sink{}
					}
				} else {
					.Sinks = (.Sinks)[:0]
				}
				for !.IsDelim(']') {
					var  *Sink
					if .IsNull() {
						.Skip()
						 = nil
					} else {
						if  == nil {
							 = new(Sink)
						}
						(*).UnmarshalEasyJSON()
					}
					.Sinks = append(.Sinks, )
					.WantComma()
				}
				.Delim(']')
			}
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast5( *jwriter.Writer,  EventSinksUpdated) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"sinks\":"
		.RawString([1:])
		if .Sinks == nil && (.Flags&jwriter.NilSliceAsEmpty) == 0 {
			.RawString("null")
		} else {
			.RawByte('[')
			for ,  := range .Sinks {
				if  > 0 {
					.RawByte(',')
				}
				if  == nil {
					.RawString("null")
				} else {
					(*).MarshalEasyJSON()
				}
			}
			.RawByte(']')
		}
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( EventSinksUpdated) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast5(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( EventSinksUpdated) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast5(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *EventSinksUpdated) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast5(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *EventSinksUpdated) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast5(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast6( *jlexer.Lexer,  *EventIssueUpdated) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "issueMessage":
			.IssueMessage = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast6( *jwriter.Writer,  EventIssueUpdated) {
	.RawByte('{')
	 := true
	_ = 
	{
		const  string = ",\"issueMessage\":"
		.RawString([1:])
		.String(string(.IssueMessage))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( EventIssueUpdated) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast6(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( EventIssueUpdated) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast6(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *EventIssueUpdated) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast6(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *EventIssueUpdated) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast6(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast7( *jlexer.Lexer,  *EnableParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		case "presentationUrl":
			.PresentationURL = string(.String())
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast7( *jwriter.Writer,  EnableParams) {
	.RawByte('{')
	 := true
	_ = 
	if .PresentationURL != "" {
		const  string = ",\"presentationUrl\":"
		 = false
		.RawString([1:])
		.String(string(.PresentationURL))
	}
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( EnableParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast7(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( EnableParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast7(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *EnableParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast7(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *EnableParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast7(, )
}
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast8( *jlexer.Lexer,  *DisableParams) {
	 := .IsStart()
	if .IsNull() {
		if  {
			.Consumed()
		}
		.Skip()
		return
	}
	.Delim('{')
	for !.IsDelim('}') {
		 := .UnsafeFieldName(false)
		.WantColon()
		if .IsNull() {
			.Skip()
			.WantComma()
			continue
		}
		switch  {
		default:
			.SkipRecursive()
		}
		.WantComma()
	}
	.Delim('}')
	if  {
		.Consumed()
	}
}
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast8( *jwriter.Writer,  DisableParams) {
	.RawByte('{')
	 := true
	_ = 
	.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func ( DisableParams) () ([]byte, error) {
	 := jwriter.Writer{}
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast8(&, )
	return .Buffer.BuildBytes(), .Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func ( DisableParams) ( *jwriter.Writer) {
	easyjsonC5a4559bEncodeGithubComChromedpCdprotoCast8(, )
}

// UnmarshalJSON supports json.Unmarshaler interface
func ( *DisableParams) ( []byte) error {
	 := jlexer.Lexer{Data: }
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast8(&, )
	return .Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func ( *DisableParams) ( *jlexer.Lexer) {
	easyjsonC5a4559bDecodeGithubComChromedpCdprotoCast8(, )
}