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