github.com/cloudwego/dynamicgo@v0.2.6-0.20240519101509-707f41b6b834/testdata/kitex_gen/deep/deep.ref.go (about)

     1  // Code generated by thriftgo (0.1.3). DO NOT EDIT.
     2  
     3  package deep
     4  
     5  import (
     6  	"database/sql"
     7  	"database/sql/driver"
     8  	"fmt"
     9  	"github.com/apache/thrift/lib/go/thrift"
    10  	"strings"
    11  )
    12  
    13  const (
    14  	ConstString = "const string"
    15  )
    16  
    17  type FOO int64
    18  
    19  const (
    20  	FOO_B FOO = 0
    21  	FOO_A FOO = 1
    22  )
    23  
    24  func (p FOO) String() string {
    25  	switch p {
    26  	case FOO_B:
    27  		return "B"
    28  	case FOO_A:
    29  		return "A"
    30  	}
    31  	return "<UNSET>"
    32  }
    33  
    34  func FOOFromString(s string) (FOO, error) {
    35  	switch s {
    36  	case "B":
    37  		return FOO_B, nil
    38  	case "A":
    39  		return FOO_A, nil
    40  	}
    41  	return FOO(0), fmt.Errorf("not a valid FOO string")
    42  }
    43  
    44  func FOOPtr(v FOO) *FOO { return &v }
    45  
    46  func (p *FOO) Scan(value interface{}) (err error) {
    47  	var result sql.NullInt64
    48  	err = result.Scan(value)
    49  	*p = FOO(result.Int64)
    50  	return
    51  }
    52  
    53  func (p *FOO) Value() (driver.Value, error) {
    54  	if p == nil {
    55  		return nil, nil
    56  	}
    57  	return int64(*p), nil
    58  }
    59  
    60  type TestStruct struct {
    61  	A int64  `thrift:"a,1" json:"a"`
    62  	B string `thrift:"b,2" json:"b"`
    63  }
    64  
    65  func NewTestStruct() *TestStruct {
    66  	return &TestStruct{}
    67  }
    68  
    69  func (p *TestStruct) GetA() (v int64) {
    70  	return p.A
    71  }
    72  
    73  func (p *TestStruct) GetB() (v string) {
    74  	return p.B
    75  }
    76  func (p *TestStruct) SetA(val int64) {
    77  	p.A = val
    78  }
    79  func (p *TestStruct) SetB(val string) {
    80  	p.B = val
    81  }
    82  
    83  var fieldIDToName_TestStruct = map[int16]string{
    84  	1: "a",
    85  	2: "b",
    86  }
    87  
    88  func (p *TestStruct) Read(iprot thrift.TProtocol) (err error) {
    89  
    90  	var fieldTypeId thrift.TType
    91  	var fieldId int16
    92  
    93  	if _, err = iprot.ReadStructBegin(); err != nil {
    94  		goto ReadStructBeginError
    95  	}
    96  
    97  	for {
    98  		_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()
    99  		if err != nil {
   100  			goto ReadFieldBeginError
   101  		}
   102  		if fieldTypeId == thrift.STOP {
   103  			break
   104  		}
   105  
   106  		switch fieldId {
   107  		case 1:
   108  			if fieldTypeId == thrift.I64 {
   109  				if err = p.ReadField1(iprot); err != nil {
   110  					goto ReadFieldError
   111  				}
   112  			} else {
   113  				if err = iprot.Skip(fieldTypeId); err != nil {
   114  					goto SkipFieldError
   115  				}
   116  			}
   117  		case 2:
   118  			if fieldTypeId == thrift.STRING {
   119  				if err = p.ReadField2(iprot); err != nil {
   120  					goto ReadFieldError
   121  				}
   122  			} else {
   123  				if err = iprot.Skip(fieldTypeId); err != nil {
   124  					goto SkipFieldError
   125  				}
   126  			}
   127  		default:
   128  			if err = iprot.Skip(fieldTypeId); err != nil {
   129  				goto SkipFieldError
   130  			}
   131  		}
   132  
   133  		if err = iprot.ReadFieldEnd(); err != nil {
   134  			goto ReadFieldEndError
   135  		}
   136  	}
   137  	if err = iprot.ReadStructEnd(); err != nil {
   138  		goto ReadStructEndError
   139  	}
   140  
   141  	return nil
   142  ReadStructBeginError:
   143  	return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
   144  ReadFieldBeginError:
   145  	return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
   146  ReadFieldError:
   147  	return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TestStruct[fieldId]), err)
   148  SkipFieldError:
   149  	return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
   150  
   151  ReadFieldEndError:
   152  	return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
   153  ReadStructEndError:
   154  	return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   155  }
   156  
   157  func (p *TestStruct) ReadField1(iprot thrift.TProtocol) error {
   158  	if v, err := iprot.ReadI64(); err != nil {
   159  		return err
   160  	} else {
   161  		p.A = v
   162  	}
   163  	return nil
   164  }
   165  
   166  func (p *TestStruct) ReadField2(iprot thrift.TProtocol) error {
   167  	if v, err := iprot.ReadString(); err != nil {
   168  		return err
   169  	} else {
   170  		p.B = v
   171  	}
   172  	return nil
   173  }
   174  
   175  func (p *TestStruct) Write(oprot thrift.TProtocol) (err error) {
   176  	var fieldId int16
   177  	if err = oprot.WriteStructBegin("TestStruct"); err != nil {
   178  		goto WriteStructBeginError
   179  	}
   180  	if p != nil {
   181  		if err = p.writeField1(oprot); err != nil {
   182  			fieldId = 1
   183  			goto WriteFieldError
   184  		}
   185  		if err = p.writeField2(oprot); err != nil {
   186  			fieldId = 2
   187  			goto WriteFieldError
   188  		}
   189  
   190  	}
   191  	if err = oprot.WriteFieldStop(); err != nil {
   192  		goto WriteFieldStopError
   193  	}
   194  	if err = oprot.WriteStructEnd(); err != nil {
   195  		goto WriteStructEndError
   196  	}
   197  	return nil
   198  WriteStructBeginError:
   199  	return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   200  WriteFieldError:
   201  	return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err)
   202  WriteFieldStopError:
   203  	return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err)
   204  WriteStructEndError:
   205  	return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err)
   206  }
   207  
   208  func (p *TestStruct) writeField1(oprot thrift.TProtocol) (err error) {
   209  	if err = oprot.WriteFieldBegin("a", thrift.I64, 1); err != nil {
   210  		goto WriteFieldBeginError
   211  	}
   212  	if err := oprot.WriteI64(p.A); err != nil {
   213  		return err
   214  	}
   215  	if err = oprot.WriteFieldEnd(); err != nil {
   216  		goto WriteFieldEndError
   217  	}
   218  	return nil
   219  WriteFieldBeginError:
   220  	return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err)
   221  WriteFieldEndError:
   222  	return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err)
   223  }
   224  
   225  func (p *TestStruct) writeField2(oprot thrift.TProtocol) (err error) {
   226  	if err = oprot.WriteFieldBegin("b", thrift.STRING, 2); err != nil {
   227  		goto WriteFieldBeginError
   228  	}
   229  	if err := oprot.WriteString(p.B); err != nil {
   230  		return err
   231  	}
   232  	if err = oprot.WriteFieldEnd(); err != nil {
   233  		goto WriteFieldEndError
   234  	}
   235  	return nil
   236  WriteFieldBeginError:
   237  	return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err)
   238  WriteFieldEndError:
   239  	return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err)
   240  }
   241  
   242  func (p *TestStruct) String() string {
   243  	if p == nil {
   244  		return "<nil>"
   245  	}
   246  	return fmt.Sprintf("TestStruct(%+v)", *p)
   247  }
   248  
   249  func (p *TestStruct) DeepEqual(ano *TestStruct) bool {
   250  	if p == ano {
   251  		return true
   252  	} else if p == nil || ano == nil {
   253  		return false
   254  	}
   255  	if !p.Field1DeepEqual(ano.A) {
   256  		return false
   257  	}
   258  	if !p.Field2DeepEqual(ano.B) {
   259  		return false
   260  	}
   261  	return true
   262  }
   263  
   264  func (p *TestStruct) Field1DeepEqual(src int64) bool {
   265  
   266  	if p.A != src {
   267  		return false
   268  	}
   269  	return true
   270  }
   271  func (p *TestStruct) Field2DeepEqual(src string) bool {
   272  
   273  	if strings.Compare(p.B, src) != 0 {
   274  		return false
   275  	}
   276  	return true
   277  }