1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20package thrift
21
22// Autogenerated by Thrift Compiler (FIXME)
23// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
24
25/* THE FOLLOWING THRIFT FILE WAS USED TO CREATE THIS
26
27enum MyTestEnum {
28	FIRST = 1,
29	SECOND = 2,
30	THIRD = 3,
31	FOURTH = 4,
32}
33
34struct MyTestStruct {
35	1: bool on,
36	2: byte b,
37	3: i16 int16,
38	4: i32 int32,
39	5: i64 int64,
40	6: double d,
41	7: string st,
42	8: binary bin,
43	9: map<string, string> stringMap,
44	10: list<string> stringList,
45	11: set<string> stringSet,
46	12: MyTestEnum e,
47}
48*/
49
50import (
51	"context"
52	"fmt"
53)
54
55// (needed to ensure safety because of naive import list construction.)
56var _ = ZERO
57var _ = fmt.Printf
58
59var GoUnusedProtection__ int
60
61type MyTestEnum int64
62
63const (
64	MyTestEnum_FIRST  MyTestEnum = 1
65	MyTestEnum_SECOND MyTestEnum = 2
66	MyTestEnum_THIRD  MyTestEnum = 3
67	MyTestEnum_FOURTH MyTestEnum = 4
68)
69
70func (p MyTestEnum) String() string {
71	switch p {
72	case MyTestEnum_FIRST:
73		return "FIRST"
74	case MyTestEnum_SECOND:
75		return "SECOND"
76	case MyTestEnum_THIRD:
77		return "THIRD"
78	case MyTestEnum_FOURTH:
79		return "FOURTH"
80	}
81	return "<UNSET>"
82}
83
84func MyTestEnumFromString(s string) (MyTestEnum, error) {
85	switch s {
86	case "FIRST":
87		return MyTestEnum_FIRST, nil
88	case "SECOND":
89		return MyTestEnum_SECOND, nil
90	case "THIRD":
91		return MyTestEnum_THIRD, nil
92	case "FOURTH":
93		return MyTestEnum_FOURTH, nil
94	}
95	return MyTestEnum(0), fmt.Errorf("not a valid MyTestEnum string")
96}
97
98func MyTestEnumPtr(v MyTestEnum) *MyTestEnum { return &v }
99
100type MyTestStruct struct {
101	On         bool                `thrift:"on,1" json:"on"`
102	B          int8                `thrift:"b,2" json:"b"`
103	Int16      int16               `thrift:"int16,3" json:"int16"`
104	Int32      int32               `thrift:"int32,4" json:"int32"`
105	Int64      int64               `thrift:"int64,5" json:"int64"`
106	D          float64             `thrift:"d,6" json:"d"`
107	St         string              `thrift:"st,7" json:"st"`
108	Bin        []byte              `thrift:"bin,8" json:"bin"`
109	StringMap  map[string]string   `thrift:"stringMap,9" json:"stringMap"`
110	StringList []string            `thrift:"stringList,10" json:"stringList"`
111	StringSet  map[string]struct{} `thrift:"stringSet,11" json:"stringSet"`
112	E          MyTestEnum          `thrift:"e,12" json:"e"`
113}
114
115func NewMyTestStruct() *MyTestStruct {
116	return &MyTestStruct{}
117}
118
119func (p *MyTestStruct) GetOn() bool {
120	return p.On
121}
122
123func (p *MyTestStruct) GetB() int8 {
124	return p.B
125}
126
127func (p *MyTestStruct) GetInt16() int16 {
128	return p.Int16
129}
130
131func (p *MyTestStruct) GetInt32() int32 {
132	return p.Int32
133}
134
135func (p *MyTestStruct) GetInt64() int64 {
136	return p.Int64
137}
138
139func (p *MyTestStruct) GetD() float64 {
140	return p.D
141}
142
143func (p *MyTestStruct) GetSt() string {
144	return p.St
145}
146
147func (p *MyTestStruct) GetBin() []byte {
148	return p.Bin
149}
150
151func (p *MyTestStruct) GetStringMap() map[string]string {
152	return p.StringMap
153}
154
155func (p *MyTestStruct) GetStringList() []string {
156	return p.StringList
157}
158
159func (p *MyTestStruct) GetStringSet() map[string]struct{} {
160	return p.StringSet
161}
162
163func (p *MyTestStruct) GetE() MyTestEnum {
164	return p.E
165}
166func (p *MyTestStruct) Read(ctx context.Context, iprot TProtocol) error {
167	if _, err := iprot.ReadStructBegin(ctx); err != nil {
168		return PrependError(fmt.Sprintf("%T read error: ", p), err)
169	}
170	for {
171		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin(ctx)
172		if err != nil {
173			return PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
174		}
175		if fieldTypeId == STOP {
176			break
177		}
178		switch fieldId {
179		case 1:
180			if err := p.readField1(ctx, iprot); err != nil {
181				return err
182			}
183		case 2:
184			if err := p.readField2(ctx, iprot); err != nil {
185				return err
186			}
187		case 3:
188			if err := p.readField3(ctx, iprot); err != nil {
189				return err
190			}
191		case 4:
192			if err := p.readField4(ctx, iprot); err != nil {
193				return err
194			}
195		case 5:
196			if err := p.readField5(ctx, iprot); err != nil {
197				return err
198			}
199		case 6:
200			if err := p.readField6(ctx, iprot); err != nil {
201				return err
202			}
203		case 7:
204			if err := p.readField7(ctx, iprot); err != nil {
205				return err
206			}
207		case 8:
208			if err := p.readField8(ctx, iprot); err != nil {
209				return err
210			}
211		case 9:
212			if err := p.readField9(ctx, iprot); err != nil {
213				return err
214			}
215		case 10:
216			if err := p.readField10(ctx, iprot); err != nil {
217				return err
218			}
219		case 11:
220			if err := p.readField11(ctx, iprot); err != nil {
221				return err
222			}
223		case 12:
224			if err := p.readField12(ctx, iprot); err != nil {
225				return err
226			}
227		default:
228			if err := iprot.Skip(ctx, fieldTypeId); err != nil {
229				return err
230			}
231		}
232		if err := iprot.ReadFieldEnd(ctx); err != nil {
233			return err
234		}
235	}
236	if err := iprot.ReadStructEnd(ctx); err != nil {
237		return PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
238	}
239	return nil
240}
241
242func (p *MyTestStruct) readField1(ctx context.Context, iprot TProtocol) error {
243	if v, err := iprot.ReadBool(ctx); err != nil {
244		return PrependError("error reading field 1: ", err)
245	} else {
246		p.On = v
247	}
248	return nil
249}
250
251func (p *MyTestStruct) readField2(ctx context.Context, iprot TProtocol) error {
252	if v, err := iprot.ReadByte(ctx); err != nil {
253		return PrependError("error reading field 2: ", err)
254	} else {
255		temp := int8(v)
256		p.B = temp
257	}
258	return nil
259}
260
261func (p *MyTestStruct) readField3(ctx context.Context, iprot TProtocol) error {
262	if v, err := iprot.ReadI16(ctx); err != nil {
263		return PrependError("error reading field 3: ", err)
264	} else {
265		p.Int16 = v
266	}
267	return nil
268}
269
270func (p *MyTestStruct) readField4(ctx context.Context, iprot TProtocol) error {
271	if v, err := iprot.ReadI32(ctx); err != nil {
272		return PrependError("error reading field 4: ", err)
273	} else {
274		p.Int32 = v
275	}
276	return nil
277}
278
279func (p *MyTestStruct) readField5(ctx context.Context, iprot TProtocol) error {
280	if v, err := iprot.ReadI64(ctx); err != nil {
281		return PrependError("error reading field 5: ", err)
282	} else {
283		p.Int64 = v
284	}
285	return nil
286}
287
288func (p *MyTestStruct) readField6(ctx context.Context, iprot TProtocol) error {
289	if v, err := iprot.ReadDouble(ctx); err != nil {
290		return PrependError("error reading field 6: ", err)
291	} else {
292		p.D = v
293	}
294	return nil
295}
296
297func (p *MyTestStruct) readField7(ctx context.Context, iprot TProtocol) error {
298	if v, err := iprot.ReadString(ctx); err != nil {
299		return PrependError("error reading field 7: ", err)
300	} else {
301		p.St = v
302	}
303	return nil
304}
305
306func (p *MyTestStruct) readField8(ctx context.Context, iprot TProtocol) error {
307	if v, err := iprot.ReadBinary(ctx); err != nil {
308		return PrependError("error reading field 8: ", err)
309	} else {
310		p.Bin = v
311	}
312	return nil
313}
314
315func (p *MyTestStruct) readField9(ctx context.Context, iprot TProtocol) error {
316	_, _, size, err := iprot.ReadMapBegin(ctx)
317	if err != nil {
318		return PrependError("error reading map begin: ", err)
319	}
320	tMap := make(map[string]string, size)
321	p.StringMap = tMap
322	for i := 0; i < size; i++ {
323		var _key0 string
324		if v, err := iprot.ReadString(ctx); err != nil {
325			return PrependError("error reading field 0: ", err)
326		} else {
327			_key0 = v
328		}
329		var _val1 string
330		if v, err := iprot.ReadString(ctx); err != nil {
331			return PrependError("error reading field 0: ", err)
332		} else {
333			_val1 = v
334		}
335		p.StringMap[_key0] = _val1
336	}
337	if err := iprot.ReadMapEnd(ctx); err != nil {
338		return PrependError("error reading map end: ", err)
339	}
340	return nil
341}
342
343func (p *MyTestStruct) readField10(ctx context.Context, iprot TProtocol) error {
344	_, size, err := iprot.ReadListBegin(ctx)
345	if err != nil {
346		return PrependError("error reading list begin: ", err)
347	}
348	tSlice := make([]string, 0, size)
349	p.StringList = tSlice
350	for i := 0; i < size; i++ {
351		var _elem2 string
352		if v, err := iprot.ReadString(ctx); err != nil {
353			return PrependError("error reading field 0: ", err)
354		} else {
355			_elem2 = v
356		}
357		p.StringList = append(p.StringList, _elem2)
358	}
359	if err := iprot.ReadListEnd(ctx); err != nil {
360		return PrependError("error reading list end: ", err)
361	}
362	return nil
363}
364
365func (p *MyTestStruct) readField11(ctx context.Context, iprot TProtocol) error {
366	_, size, err := iprot.ReadSetBegin(ctx)
367	if err != nil {
368		return PrependError("error reading set begin: ", err)
369	}
370	tSet := make(map[string]struct{}, size)
371	p.StringSet = tSet
372	for i := 0; i < size; i++ {
373		var _elem3 string
374		if v, err := iprot.ReadString(ctx); err != nil {
375			return PrependError("error reading field 0: ", err)
376		} else {
377			_elem3 = v
378		}
379		p.StringSet[_elem3] = struct{}{}
380	}
381	if err := iprot.ReadSetEnd(ctx); err != nil {
382		return PrependError("error reading set end: ", err)
383	}
384	return nil
385}
386
387func (p *MyTestStruct) readField12(ctx context.Context, iprot TProtocol) error {
388	if v, err := iprot.ReadI32(ctx); err != nil {
389		return PrependError("error reading field 12: ", err)
390	} else {
391		temp := MyTestEnum(v)
392		p.E = temp
393	}
394	return nil
395}
396
397func (p *MyTestStruct) Write(ctx context.Context, oprot TProtocol) error {
398	if err := oprot.WriteStructBegin(ctx, "MyTestStruct"); err != nil {
399		return PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
400	}
401	if err := p.writeField1(ctx, oprot); err != nil {
402		return err
403	}
404	if err := p.writeField2(ctx, oprot); err != nil {
405		return err
406	}
407	if err := p.writeField3(ctx, oprot); err != nil {
408		return err
409	}
410	if err := p.writeField4(ctx, oprot); err != nil {
411		return err
412	}
413	if err := p.writeField5(ctx, oprot); err != nil {
414		return err
415	}
416	if err := p.writeField6(ctx, oprot); err != nil {
417		return err
418	}
419	if err := p.writeField7(ctx, oprot); err != nil {
420		return err
421	}
422	if err := p.writeField8(ctx, oprot); err != nil {
423		return err
424	}
425	if err := p.writeField9(ctx, oprot); err != nil {
426		return err
427	}
428	if err := p.writeField10(ctx, oprot); err != nil {
429		return err
430	}
431	if err := p.writeField11(ctx, oprot); err != nil {
432		return err
433	}
434	if err := p.writeField12(ctx, oprot); err != nil {
435		return err
436	}
437	if err := oprot.WriteFieldStop(ctx); err != nil {
438		return PrependError("write field stop error: ", err)
439	}
440	if err := oprot.WriteStructEnd(ctx); err != nil {
441		return PrependError("write struct stop error: ", err)
442	}
443	return nil
444}
445
446func (p *MyTestStruct) writeField1(ctx context.Context, oprot TProtocol) (err error) {
447	if err := oprot.WriteFieldBegin(ctx, "on", BOOL, 1); err != nil {
448		return PrependError(fmt.Sprintf("%T write field begin error 1:on: ", p), err)
449	}
450	if err := oprot.WriteBool(ctx, bool(p.On)); err != nil {
451		return PrependError(fmt.Sprintf("%T.on (1) field write error: ", p), err)
452	}
453	if err := oprot.WriteFieldEnd(ctx); err != nil {
454		return PrependError(fmt.Sprintf("%T write field end error 1:on: ", p), err)
455	}
456	return err
457}
458
459func (p *MyTestStruct) writeField2(ctx context.Context, oprot TProtocol) (err error) {
460	if err := oprot.WriteFieldBegin(ctx, "b", BYTE, 2); err != nil {
461		return PrependError(fmt.Sprintf("%T write field begin error 2:b: ", p), err)
462	}
463	if err := oprot.WriteByte(ctx, int8(p.B)); err != nil {
464		return PrependError(fmt.Sprintf("%T.b (2) field write error: ", p), err)
465	}
466	if err := oprot.WriteFieldEnd(ctx); err != nil {
467		return PrependError(fmt.Sprintf("%T write field end error 2:b: ", p), err)
468	}
469	return err
470}
471
472func (p *MyTestStruct) writeField3(ctx context.Context, oprot TProtocol) (err error) {
473	if err := oprot.WriteFieldBegin(ctx, "int16", I16, 3); err != nil {
474		return PrependError(fmt.Sprintf("%T write field begin error 3:int16: ", p), err)
475	}
476	if err := oprot.WriteI16(ctx, int16(p.Int16)); err != nil {
477		return PrependError(fmt.Sprintf("%T.int16 (3) field write error: ", p), err)
478	}
479	if err := oprot.WriteFieldEnd(ctx); err != nil {
480		return PrependError(fmt.Sprintf("%T write field end error 3:int16: ", p), err)
481	}
482	return err
483}
484
485func (p *MyTestStruct) writeField4(ctx context.Context, oprot TProtocol) (err error) {
486	if err := oprot.WriteFieldBegin(ctx, "int32", I32, 4); err != nil {
487		return PrependError(fmt.Sprintf("%T write field begin error 4:int32: ", p), err)
488	}
489	if err := oprot.WriteI32(ctx, int32(p.Int32)); err != nil {
490		return PrependError(fmt.Sprintf("%T.int32 (4) field write error: ", p), err)
491	}
492	if err := oprot.WriteFieldEnd(ctx); err != nil {
493		return PrependError(fmt.Sprintf("%T write field end error 4:int32: ", p), err)
494	}
495	return err
496}
497
498func (p *MyTestStruct) writeField5(ctx context.Context, oprot TProtocol) (err error) {
499	if err := oprot.WriteFieldBegin(ctx, "int64", I64, 5); err != nil {
500		return PrependError(fmt.Sprintf("%T write field begin error 5:int64: ", p), err)
501	}
502	if err := oprot.WriteI64(ctx, int64(p.Int64)); err != nil {
503		return PrependError(fmt.Sprintf("%T.int64 (5) field write error: ", p), err)
504	}
505	if err := oprot.WriteFieldEnd(ctx); err != nil {
506		return PrependError(fmt.Sprintf("%T write field end error 5:int64: ", p), err)
507	}
508	return err
509}
510
511func (p *MyTestStruct) writeField6(ctx context.Context, oprot TProtocol) (err error) {
512	if err := oprot.WriteFieldBegin(ctx, "d", DOUBLE, 6); err != nil {
513		return PrependError(fmt.Sprintf("%T write field begin error 6:d: ", p), err)
514	}
515	if err := oprot.WriteDouble(ctx, float64(p.D)); err != nil {
516		return PrependError(fmt.Sprintf("%T.d (6) field write error: ", p), err)
517	}
518	if err := oprot.WriteFieldEnd(ctx); err != nil {
519		return PrependError(fmt.Sprintf("%T write field end error 6:d: ", p), err)
520	}
521	return err
522}
523
524func (p *MyTestStruct) writeField7(ctx context.Context, oprot TProtocol) (err error) {
525	if err := oprot.WriteFieldBegin(ctx, "st", STRING, 7); err != nil {
526		return PrependError(fmt.Sprintf("%T write field begin error 7:st: ", p), err)
527	}
528	if err := oprot.WriteString(ctx, string(p.St)); err != nil {
529		return PrependError(fmt.Sprintf("%T.st (7) field write error: ", p), err)
530	}
531	if err := oprot.WriteFieldEnd(ctx); err != nil {
532		return PrependError(fmt.Sprintf("%T write field end error 7:st: ", p), err)
533	}
534	return err
535}
536
537func (p *MyTestStruct) writeField8(ctx context.Context, oprot TProtocol) (err error) {
538	if err := oprot.WriteFieldBegin(ctx, "bin", STRING, 8); err != nil {
539		return PrependError(fmt.Sprintf("%T write field begin error 8:bin: ", p), err)
540	}
541	if err := oprot.WriteBinary(ctx, p.Bin); err != nil {
542		return PrependError(fmt.Sprintf("%T.bin (8) field write error: ", p), err)
543	}
544	if err := oprot.WriteFieldEnd(ctx); err != nil {
545		return PrependError(fmt.Sprintf("%T write field end error 8:bin: ", p), err)
546	}
547	return err
548}
549
550func (p *MyTestStruct) writeField9(ctx context.Context, oprot TProtocol) (err error) {
551	if err := oprot.WriteFieldBegin(ctx, "stringMap", MAP, 9); err != nil {
552		return PrependError(fmt.Sprintf("%T write field begin error 9:stringMap: ", p), err)
553	}
554	if err := oprot.WriteMapBegin(ctx, STRING, STRING, len(p.StringMap)); err != nil {
555		return PrependError("error writing map begin: ", err)
556	}
557	for k, v := range p.StringMap {
558		if err := oprot.WriteString(ctx, string(k)); err != nil {
559			return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
560		}
561		if err := oprot.WriteString(ctx, string(v)); err != nil {
562			return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
563		}
564	}
565	if err := oprot.WriteMapEnd(ctx); err != nil {
566		return PrependError("error writing map end: ", err)
567	}
568	if err := oprot.WriteFieldEnd(ctx); err != nil {
569		return PrependError(fmt.Sprintf("%T write field end error 9:stringMap: ", p), err)
570	}
571	return err
572}
573
574func (p *MyTestStruct) writeField10(ctx context.Context, oprot TProtocol) (err error) {
575	if err := oprot.WriteFieldBegin(ctx, "stringList", LIST, 10); err != nil {
576		return PrependError(fmt.Sprintf("%T write field begin error 10:stringList: ", p), err)
577	}
578	if err := oprot.WriteListBegin(ctx, STRING, len(p.StringList)); err != nil {
579		return PrependError("error writing list begin: ", err)
580	}
581	for _, v := range p.StringList {
582		if err := oprot.WriteString(ctx, string(v)); err != nil {
583			return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
584		}
585	}
586	if err := oprot.WriteListEnd(ctx); err != nil {
587		return PrependError("error writing list end: ", err)
588	}
589	if err := oprot.WriteFieldEnd(ctx); err != nil {
590		return PrependError(fmt.Sprintf("%T write field end error 10:stringList: ", p), err)
591	}
592	return err
593}
594
595func (p *MyTestStruct) writeField11(ctx context.Context, oprot TProtocol) (err error) {
596	if err := oprot.WriteFieldBegin(ctx, "stringSet", SET, 11); err != nil {
597		return PrependError(fmt.Sprintf("%T write field begin error 11:stringSet: ", p), err)
598	}
599	if err := oprot.WriteSetBegin(ctx, STRING, len(p.StringSet)); err != nil {
600		return PrependError("error writing set begin: ", err)
601	}
602	for v := range p.StringSet {
603		if err := oprot.WriteString(ctx, string(v)); err != nil {
604			return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
605		}
606	}
607	if err := oprot.WriteSetEnd(ctx); err != nil {
608		return PrependError("error writing set end: ", err)
609	}
610	if err := oprot.WriteFieldEnd(ctx); err != nil {
611		return PrependError(fmt.Sprintf("%T write field end error 11:stringSet: ", p), err)
612	}
613	return err
614}
615
616func (p *MyTestStruct) writeField12(ctx context.Context, oprot TProtocol) (err error) {
617	if err := oprot.WriteFieldBegin(ctx, "e", I32, 12); err != nil {
618		return PrependError(fmt.Sprintf("%T write field begin error 12:e: ", p), err)
619	}
620	if err := oprot.WriteI32(ctx, int32(p.E)); err != nil {
621		return PrependError(fmt.Sprintf("%T.e (12) field write error: ", p), err)
622	}
623	if err := oprot.WriteFieldEnd(ctx); err != nil {
624		return PrependError(fmt.Sprintf("%T write field end error 12:e: ", p), err)
625	}
626	return err
627}
628
629func (p *MyTestStruct) String() string {
630	if p == nil {
631		return "<nil>"
632	}
633	return fmt.Sprintf("MyTestStruct(%+v)", *p)
634}
635