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 }