/*
 * Copyright 2025 CloudWeGo Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by prutalgen. DO NOT EDIT.
// prutalgen --proto_path=. --go_out=../ ./testdata.proto

package prutal

type TestofNestedMessage struct {
	Field1 bool `protobuf:"varint,1,opt,name=field1" json:"field1,omitempty"`
}

func (x *TestofNestedMessage) Reset() { *x = TestofNestedMessage{} }

type TestOneofMessage struct {
	// Types that are assignable to OneOfFieldA:
	//
	//	*TestOneofMessage_Field1
	//	*TestOneofMessage_Field2
	OneOfFieldA isTestOneofMessage_OneOfFieldA `protobuf_oneof:"one_of_field_a"`
	// Types that are assignable to OneOfFieldB:
	//
	//	*TestOneofMessage_Field3
	//	*TestOneofMessage_Field4
	OneOfFieldB isTestOneofMessage_OneOfFieldB `protobuf_oneof:"one_of_field_b"`
	// Types that are assignable to OneOfFieldC:
	//
	//	*TestOneofMessage_Field5
	OneOfFieldC isTestOneofMessage_OneOfFieldC `protobuf_oneof:"one_of_field_c"`
}

func (x *TestOneofMessage) Reset() { *x = TestOneofMessage{} }

// XXX_OneofWrappers is for the internal use of the prutal package.
func (*TestOneofMessage) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TestOneofMessage_Field1)(nil),
		(*TestOneofMessage_Field2)(nil),
		(*TestOneofMessage_Field3)(nil),
		(*TestOneofMessage_Field4)(nil),
		(*TestOneofMessage_Field5)(nil),
	}
}

type isTestOneofMessage_OneOfFieldA interface {
	isTestOneofMessage_OneOfFieldA()
}

type TestOneofMessage_Field1 struct {
	Field1 bool `protobuf:"varint,1,opt,name=field1" json:"field1,omitempty"`
}

func (*TestOneofMessage_Field1) isTestOneofMessage_OneOfFieldA() {}

type TestOneofMessage_Field2 struct {
	Field2 int64 `protobuf:"varint,2,opt,name=field2" json:"field2,omitempty"`
}

func (*TestOneofMessage_Field2) isTestOneofMessage_OneOfFieldA() {}

type isTestOneofMessage_OneOfFieldB interface {
	isTestOneofMessage_OneOfFieldB()
}

type TestOneofMessage_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=field3" json:"field3,omitempty"`
}

func (*TestOneofMessage_Field3) isTestOneofMessage_OneOfFieldB() {}

type TestOneofMessage_Field4 struct {
	Field4 string `protobuf:"bytes,4,opt,name=field4" json:"field4,omitempty"`
}

func (*TestOneofMessage_Field4) isTestOneofMessage_OneOfFieldB() {}

type isTestOneofMessage_OneOfFieldC interface {
	isTestOneofMessage_OneOfFieldC()
}

type TestOneofMessage_Field5 struct {
	Field5 *TestofNestedMessage `protobuf:"bytes,5,opt,name=field5" json:"field5,omitempty"`
}

func (*TestOneofMessage_Field5) isTestOneofMessage_OneOfFieldC() {}
