1 /** 2 * Autogenerated by Thrift for src/module.thrift 3 * 4 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING 5 * @generated @nocommit 6 */ 7 #pragma once 8 9 #include <thrift/lib/cpp2/gen/module_types_h.h> 10 11 12 #include "thrift/compiler/test/fixtures/mcpp2-compare/gen-cpp2/includes_types.h" 13 #include <folly/small_vector.h> 14 15 namespace apache { 16 namespace thrift { 17 namespace tag { 18 struct boolField; 19 struct boolField; 20 struct MyBoolField; 21 struct MyIntField; 22 struct MyStringField; 23 struct MyStringField2; 24 struct MyBinaryField; 25 struct MyBinaryField2; 26 struct MyBinaryField3; 27 struct MyBinaryListField4; 28 struct MyMapEnumAndInt; 29 struct MyCustomField; 30 struct MyOptCustomField; 31 struct intValue; 32 struct stringValue; 33 struct intValue; 34 struct opt_intValue; 35 struct stringValue; 36 struct opt_stringValue; 37 struct intValue2; 38 struct intValue3; 39 struct doubelValue; 40 struct boolValue; 41 struct union_list; 42 struct union_set; 43 struct union_map; 44 struct opt_union_map; 45 struct enum_field; 46 struct enum_container; 47 struct a_struct; 48 struct a_set_struct; 49 struct a_union; 50 struct opt_a_union; 51 struct a_union_list; 52 struct a_union_typedef; 53 struct a_union_typedef_list; 54 struct MyBinaryField; 55 struct MyBinaryField2; 56 struct MyBinaryListField4; 57 struct ref_field; 58 struct ref_field2; 59 struct excp_field; 60 struct MyCustomField; 61 struct code; 62 struct req_code; 63 struct message2; 64 struct req_message; 65 struct exception_list; 66 struct exception_set; 67 struct exception_map; 68 struct req_exception_map; 69 struct enum_field; 70 struct enum_container; 71 struct a_struct; 72 struct a_set_struct; 73 struct a_union_list; 74 struct union_typedef; 75 struct a_union_typedef_list; 76 struct MyCustomField; 77 struct MyOptCustomField; 78 struct code; 79 struct req_code; 80 struct message; 81 struct fieldA; 82 struct req_fieldA; 83 struct opt_fieldA; 84 struct fieldB; 85 struct req_fieldB; 86 struct opt_fieldB; 87 struct fieldC; 88 struct req_fieldC; 89 struct opt_fieldC; 90 struct fieldD; 91 struct fieldE; 92 struct req_fieldE; 93 struct opt_fieldE; 94 struct fieldF; 95 struct fieldG; 96 struct fieldH; 97 struct fieldI; 98 struct fieldJ; 99 struct fieldK; 100 struct fieldL; 101 struct fieldM; 102 struct fieldN; 103 struct fieldO; 104 struct fieldP; 105 struct fieldQ; 106 struct fieldR; 107 struct req_fieldR; 108 struct opt_fieldR; 109 struct fieldS; 110 struct fieldT; 111 struct fieldU; 112 struct fieldV; 113 struct req_fieldV; 114 struct opt_fieldV; 115 struct fieldW; 116 struct fieldX; 117 struct req_fieldX; 118 struct opt_fieldX; 119 struct fieldY; 120 struct fieldZ; 121 struct fieldAA; 122 struct fieldAB; 123 struct fieldAC; 124 struct fieldAD; 125 struct fieldAE; 126 struct fieldSD; 127 struct MyIncludedInt; 128 struct MyIncludedStruct; 129 struct ARefField; 130 struct ARequiredField; 131 struct no_annotation; 132 struct cpp_unique_ref; 133 struct cpp2_unique_ref; 134 struct container_with_ref; 135 struct req_cpp_unique_ref; 136 struct req_cpp2_unique_ref; 137 struct req_container_with_ref; 138 struct opt_cpp_unique_ref; 139 struct opt_cpp2_unique_ref; 140 struct opt_container_with_ref; 141 struct ref_type_unique; 142 struct ref_type_shared; 143 struct ref_type_const; 144 struct req_ref_type_shared; 145 struct req_ref_type_const; 146 struct req_ref_type_unique; 147 struct opt_ref_type_const; 148 struct opt_ref_type_unique; 149 struct opt_ref_type_shared; 150 struct base_type; 151 struct list_type; 152 struct set_type; 153 struct map_type; 154 struct map_struct_type; 155 struct iobuf_type; 156 struct iobuf_ptr; 157 struct list_i32_template; 158 struct list_string_template; 159 struct set_template; 160 struct map_template; 161 struct typedef_list_template; 162 struct typedef_deque_template; 163 struct typedef_set_template; 164 struct typedef_map_template; 165 struct indirection_a; 166 struct indirection_b; 167 struct indirection_c; 168 struct iobuf_type_val; 169 struct iobuf_ptr_val; 170 struct struct_struct; 171 struct map_of_iobufs; 172 struct map_of_iobuf_ptrs; 173 struct floatField; 174 struct doubleField; 175 struct floatSide; 176 struct doubleSide; 177 struct intField; 178 } // namespace tag 179 namespace detail { 180 #ifndef APACHE_THRIFT_ACCESSOR_boolField 181 #define APACHE_THRIFT_ACCESSOR_boolField 182 APACHE_THRIFT_DEFINE_ACCESSOR(boolField); 183 #endif 184 #ifndef APACHE_THRIFT_ACCESSOR_boolField 185 #define APACHE_THRIFT_ACCESSOR_boolField 186 APACHE_THRIFT_DEFINE_ACCESSOR(boolField); 187 #endif 188 #ifndef APACHE_THRIFT_ACCESSOR_MyBoolField 189 #define APACHE_THRIFT_ACCESSOR_MyBoolField 190 APACHE_THRIFT_DEFINE_ACCESSOR(MyBoolField); 191 #endif 192 #ifndef APACHE_THRIFT_ACCESSOR_MyIntField 193 #define APACHE_THRIFT_ACCESSOR_MyIntField 194 APACHE_THRIFT_DEFINE_ACCESSOR(MyIntField); 195 #endif 196 #ifndef APACHE_THRIFT_ACCESSOR_MyStringField 197 #define APACHE_THRIFT_ACCESSOR_MyStringField 198 APACHE_THRIFT_DEFINE_ACCESSOR(MyStringField); 199 #endif 200 #ifndef APACHE_THRIFT_ACCESSOR_MyStringField2 201 #define APACHE_THRIFT_ACCESSOR_MyStringField2 202 APACHE_THRIFT_DEFINE_ACCESSOR(MyStringField2); 203 #endif 204 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryField 205 #define APACHE_THRIFT_ACCESSOR_MyBinaryField 206 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryField); 207 #endif 208 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryField2 209 #define APACHE_THRIFT_ACCESSOR_MyBinaryField2 210 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryField2); 211 #endif 212 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryField3 213 #define APACHE_THRIFT_ACCESSOR_MyBinaryField3 214 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryField3); 215 #endif 216 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryListField4 217 #define APACHE_THRIFT_ACCESSOR_MyBinaryListField4 218 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryListField4); 219 #endif 220 #ifndef APACHE_THRIFT_ACCESSOR_MyMapEnumAndInt 221 #define APACHE_THRIFT_ACCESSOR_MyMapEnumAndInt 222 APACHE_THRIFT_DEFINE_ACCESSOR(MyMapEnumAndInt); 223 #endif 224 #ifndef APACHE_THRIFT_ACCESSOR_MyCustomField 225 #define APACHE_THRIFT_ACCESSOR_MyCustomField 226 APACHE_THRIFT_DEFINE_ACCESSOR(MyCustomField); 227 #endif 228 #ifndef APACHE_THRIFT_ACCESSOR_MyOptCustomField 229 #define APACHE_THRIFT_ACCESSOR_MyOptCustomField 230 APACHE_THRIFT_DEFINE_ACCESSOR(MyOptCustomField); 231 #endif 232 #ifndef APACHE_THRIFT_ACCESSOR_intValue 233 #define APACHE_THRIFT_ACCESSOR_intValue 234 APACHE_THRIFT_DEFINE_ACCESSOR(intValue); 235 #endif 236 #ifndef APACHE_THRIFT_ACCESSOR_stringValue 237 #define APACHE_THRIFT_ACCESSOR_stringValue 238 APACHE_THRIFT_DEFINE_ACCESSOR(stringValue); 239 #endif 240 #ifndef APACHE_THRIFT_ACCESSOR_intValue 241 #define APACHE_THRIFT_ACCESSOR_intValue 242 APACHE_THRIFT_DEFINE_ACCESSOR(intValue); 243 #endif 244 #ifndef APACHE_THRIFT_ACCESSOR_opt_intValue 245 #define APACHE_THRIFT_ACCESSOR_opt_intValue 246 APACHE_THRIFT_DEFINE_ACCESSOR(opt_intValue); 247 #endif 248 #ifndef APACHE_THRIFT_ACCESSOR_stringValue 249 #define APACHE_THRIFT_ACCESSOR_stringValue 250 APACHE_THRIFT_DEFINE_ACCESSOR(stringValue); 251 #endif 252 #ifndef APACHE_THRIFT_ACCESSOR_opt_stringValue 253 #define APACHE_THRIFT_ACCESSOR_opt_stringValue 254 APACHE_THRIFT_DEFINE_ACCESSOR(opt_stringValue); 255 #endif 256 #ifndef APACHE_THRIFT_ACCESSOR_intValue2 257 #define APACHE_THRIFT_ACCESSOR_intValue2 258 APACHE_THRIFT_DEFINE_ACCESSOR(intValue2); 259 #endif 260 #ifndef APACHE_THRIFT_ACCESSOR_intValue3 261 #define APACHE_THRIFT_ACCESSOR_intValue3 262 APACHE_THRIFT_DEFINE_ACCESSOR(intValue3); 263 #endif 264 #ifndef APACHE_THRIFT_ACCESSOR_doubelValue 265 #define APACHE_THRIFT_ACCESSOR_doubelValue 266 APACHE_THRIFT_DEFINE_ACCESSOR(doubelValue); 267 #endif 268 #ifndef APACHE_THRIFT_ACCESSOR_boolValue 269 #define APACHE_THRIFT_ACCESSOR_boolValue 270 APACHE_THRIFT_DEFINE_ACCESSOR(boolValue); 271 #endif 272 #ifndef APACHE_THRIFT_ACCESSOR_union_list 273 #define APACHE_THRIFT_ACCESSOR_union_list 274 APACHE_THRIFT_DEFINE_ACCESSOR(union_list); 275 #endif 276 #ifndef APACHE_THRIFT_ACCESSOR_union_set 277 #define APACHE_THRIFT_ACCESSOR_union_set 278 APACHE_THRIFT_DEFINE_ACCESSOR(union_set); 279 #endif 280 #ifndef APACHE_THRIFT_ACCESSOR_union_map 281 #define APACHE_THRIFT_ACCESSOR_union_map 282 APACHE_THRIFT_DEFINE_ACCESSOR(union_map); 283 #endif 284 #ifndef APACHE_THRIFT_ACCESSOR_opt_union_map 285 #define APACHE_THRIFT_ACCESSOR_opt_union_map 286 APACHE_THRIFT_DEFINE_ACCESSOR(opt_union_map); 287 #endif 288 #ifndef APACHE_THRIFT_ACCESSOR_enum_field 289 #define APACHE_THRIFT_ACCESSOR_enum_field 290 APACHE_THRIFT_DEFINE_ACCESSOR(enum_field); 291 #endif 292 #ifndef APACHE_THRIFT_ACCESSOR_enum_container 293 #define APACHE_THRIFT_ACCESSOR_enum_container 294 APACHE_THRIFT_DEFINE_ACCESSOR(enum_container); 295 #endif 296 #ifndef APACHE_THRIFT_ACCESSOR_a_struct 297 #define APACHE_THRIFT_ACCESSOR_a_struct 298 APACHE_THRIFT_DEFINE_ACCESSOR(a_struct); 299 #endif 300 #ifndef APACHE_THRIFT_ACCESSOR_a_set_struct 301 #define APACHE_THRIFT_ACCESSOR_a_set_struct 302 APACHE_THRIFT_DEFINE_ACCESSOR(a_set_struct); 303 #endif 304 #ifndef APACHE_THRIFT_ACCESSOR_a_union 305 #define APACHE_THRIFT_ACCESSOR_a_union 306 APACHE_THRIFT_DEFINE_ACCESSOR(a_union); 307 #endif 308 #ifndef APACHE_THRIFT_ACCESSOR_opt_a_union 309 #define APACHE_THRIFT_ACCESSOR_opt_a_union 310 APACHE_THRIFT_DEFINE_ACCESSOR(opt_a_union); 311 #endif 312 #ifndef APACHE_THRIFT_ACCESSOR_a_union_list 313 #define APACHE_THRIFT_ACCESSOR_a_union_list 314 APACHE_THRIFT_DEFINE_ACCESSOR(a_union_list); 315 #endif 316 #ifndef APACHE_THRIFT_ACCESSOR_a_union_typedef 317 #define APACHE_THRIFT_ACCESSOR_a_union_typedef 318 APACHE_THRIFT_DEFINE_ACCESSOR(a_union_typedef); 319 #endif 320 #ifndef APACHE_THRIFT_ACCESSOR_a_union_typedef_list 321 #define APACHE_THRIFT_ACCESSOR_a_union_typedef_list 322 APACHE_THRIFT_DEFINE_ACCESSOR(a_union_typedef_list); 323 #endif 324 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryField 325 #define APACHE_THRIFT_ACCESSOR_MyBinaryField 326 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryField); 327 #endif 328 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryField2 329 #define APACHE_THRIFT_ACCESSOR_MyBinaryField2 330 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryField2); 331 #endif 332 #ifndef APACHE_THRIFT_ACCESSOR_MyBinaryListField4 333 #define APACHE_THRIFT_ACCESSOR_MyBinaryListField4 334 APACHE_THRIFT_DEFINE_ACCESSOR(MyBinaryListField4); 335 #endif 336 #ifndef APACHE_THRIFT_ACCESSOR_ref_field 337 #define APACHE_THRIFT_ACCESSOR_ref_field 338 APACHE_THRIFT_DEFINE_ACCESSOR(ref_field); 339 #endif 340 #ifndef APACHE_THRIFT_ACCESSOR_ref_field2 341 #define APACHE_THRIFT_ACCESSOR_ref_field2 342 APACHE_THRIFT_DEFINE_ACCESSOR(ref_field2); 343 #endif 344 #ifndef APACHE_THRIFT_ACCESSOR_excp_field 345 #define APACHE_THRIFT_ACCESSOR_excp_field 346 APACHE_THRIFT_DEFINE_ACCESSOR(excp_field); 347 #endif 348 #ifndef APACHE_THRIFT_ACCESSOR_MyCustomField 349 #define APACHE_THRIFT_ACCESSOR_MyCustomField 350 APACHE_THRIFT_DEFINE_ACCESSOR(MyCustomField); 351 #endif 352 #ifndef APACHE_THRIFT_ACCESSOR_code 353 #define APACHE_THRIFT_ACCESSOR_code 354 APACHE_THRIFT_DEFINE_ACCESSOR(code); 355 #endif 356 #ifndef APACHE_THRIFT_ACCESSOR_req_code 357 #define APACHE_THRIFT_ACCESSOR_req_code 358 APACHE_THRIFT_DEFINE_ACCESSOR(req_code); 359 #endif 360 #ifndef APACHE_THRIFT_ACCESSOR_message2 361 #define APACHE_THRIFT_ACCESSOR_message2 362 APACHE_THRIFT_DEFINE_ACCESSOR(message2); 363 #endif 364 #ifndef APACHE_THRIFT_ACCESSOR_req_message 365 #define APACHE_THRIFT_ACCESSOR_req_message 366 APACHE_THRIFT_DEFINE_ACCESSOR(req_message); 367 #endif 368 #ifndef APACHE_THRIFT_ACCESSOR_exception_list 369 #define APACHE_THRIFT_ACCESSOR_exception_list 370 APACHE_THRIFT_DEFINE_ACCESSOR(exception_list); 371 #endif 372 #ifndef APACHE_THRIFT_ACCESSOR_exception_set 373 #define APACHE_THRIFT_ACCESSOR_exception_set 374 APACHE_THRIFT_DEFINE_ACCESSOR(exception_set); 375 #endif 376 #ifndef APACHE_THRIFT_ACCESSOR_exception_map 377 #define APACHE_THRIFT_ACCESSOR_exception_map 378 APACHE_THRIFT_DEFINE_ACCESSOR(exception_map); 379 #endif 380 #ifndef APACHE_THRIFT_ACCESSOR_req_exception_map 381 #define APACHE_THRIFT_ACCESSOR_req_exception_map 382 APACHE_THRIFT_DEFINE_ACCESSOR(req_exception_map); 383 #endif 384 #ifndef APACHE_THRIFT_ACCESSOR_enum_field 385 #define APACHE_THRIFT_ACCESSOR_enum_field 386 APACHE_THRIFT_DEFINE_ACCESSOR(enum_field); 387 #endif 388 #ifndef APACHE_THRIFT_ACCESSOR_enum_container 389 #define APACHE_THRIFT_ACCESSOR_enum_container 390 APACHE_THRIFT_DEFINE_ACCESSOR(enum_container); 391 #endif 392 #ifndef APACHE_THRIFT_ACCESSOR_a_struct 393 #define APACHE_THRIFT_ACCESSOR_a_struct 394 APACHE_THRIFT_DEFINE_ACCESSOR(a_struct); 395 #endif 396 #ifndef APACHE_THRIFT_ACCESSOR_a_set_struct 397 #define APACHE_THRIFT_ACCESSOR_a_set_struct 398 APACHE_THRIFT_DEFINE_ACCESSOR(a_set_struct); 399 #endif 400 #ifndef APACHE_THRIFT_ACCESSOR_a_union_list 401 #define APACHE_THRIFT_ACCESSOR_a_union_list 402 APACHE_THRIFT_DEFINE_ACCESSOR(a_union_list); 403 #endif 404 #ifndef APACHE_THRIFT_ACCESSOR_union_typedef 405 #define APACHE_THRIFT_ACCESSOR_union_typedef 406 APACHE_THRIFT_DEFINE_ACCESSOR(union_typedef); 407 #endif 408 #ifndef APACHE_THRIFT_ACCESSOR_a_union_typedef_list 409 #define APACHE_THRIFT_ACCESSOR_a_union_typedef_list 410 APACHE_THRIFT_DEFINE_ACCESSOR(a_union_typedef_list); 411 #endif 412 #ifndef APACHE_THRIFT_ACCESSOR_MyCustomField 413 #define APACHE_THRIFT_ACCESSOR_MyCustomField 414 APACHE_THRIFT_DEFINE_ACCESSOR(MyCustomField); 415 #endif 416 #ifndef APACHE_THRIFT_ACCESSOR_MyOptCustomField 417 #define APACHE_THRIFT_ACCESSOR_MyOptCustomField 418 APACHE_THRIFT_DEFINE_ACCESSOR(MyOptCustomField); 419 #endif 420 #ifndef APACHE_THRIFT_ACCESSOR_code 421 #define APACHE_THRIFT_ACCESSOR_code 422 APACHE_THRIFT_DEFINE_ACCESSOR(code); 423 #endif 424 #ifndef APACHE_THRIFT_ACCESSOR_req_code 425 #define APACHE_THRIFT_ACCESSOR_req_code 426 APACHE_THRIFT_DEFINE_ACCESSOR(req_code); 427 #endif 428 #ifndef APACHE_THRIFT_ACCESSOR_message 429 #define APACHE_THRIFT_ACCESSOR_message 430 APACHE_THRIFT_DEFINE_ACCESSOR(message); 431 #endif 432 #ifndef APACHE_THRIFT_ACCESSOR_fieldA 433 #define APACHE_THRIFT_ACCESSOR_fieldA 434 APACHE_THRIFT_DEFINE_ACCESSOR(fieldA); 435 #endif 436 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldA 437 #define APACHE_THRIFT_ACCESSOR_req_fieldA 438 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldA); 439 #endif 440 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldA 441 #define APACHE_THRIFT_ACCESSOR_opt_fieldA 442 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldA); 443 #endif 444 #ifndef APACHE_THRIFT_ACCESSOR_fieldB 445 #define APACHE_THRIFT_ACCESSOR_fieldB 446 APACHE_THRIFT_DEFINE_ACCESSOR(fieldB); 447 #endif 448 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldB 449 #define APACHE_THRIFT_ACCESSOR_req_fieldB 450 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldB); 451 #endif 452 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldB 453 #define APACHE_THRIFT_ACCESSOR_opt_fieldB 454 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldB); 455 #endif 456 #ifndef APACHE_THRIFT_ACCESSOR_fieldC 457 #define APACHE_THRIFT_ACCESSOR_fieldC 458 APACHE_THRIFT_DEFINE_ACCESSOR(fieldC); 459 #endif 460 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldC 461 #define APACHE_THRIFT_ACCESSOR_req_fieldC 462 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldC); 463 #endif 464 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldC 465 #define APACHE_THRIFT_ACCESSOR_opt_fieldC 466 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldC); 467 #endif 468 #ifndef APACHE_THRIFT_ACCESSOR_fieldD 469 #define APACHE_THRIFT_ACCESSOR_fieldD 470 APACHE_THRIFT_DEFINE_ACCESSOR(fieldD); 471 #endif 472 #ifndef APACHE_THRIFT_ACCESSOR_fieldE 473 #define APACHE_THRIFT_ACCESSOR_fieldE 474 APACHE_THRIFT_DEFINE_ACCESSOR(fieldE); 475 #endif 476 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldE 477 #define APACHE_THRIFT_ACCESSOR_req_fieldE 478 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldE); 479 #endif 480 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldE 481 #define APACHE_THRIFT_ACCESSOR_opt_fieldE 482 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldE); 483 #endif 484 #ifndef APACHE_THRIFT_ACCESSOR_fieldF 485 #define APACHE_THRIFT_ACCESSOR_fieldF 486 APACHE_THRIFT_DEFINE_ACCESSOR(fieldF); 487 #endif 488 #ifndef APACHE_THRIFT_ACCESSOR_fieldG 489 #define APACHE_THRIFT_ACCESSOR_fieldG 490 APACHE_THRIFT_DEFINE_ACCESSOR(fieldG); 491 #endif 492 #ifndef APACHE_THRIFT_ACCESSOR_fieldH 493 #define APACHE_THRIFT_ACCESSOR_fieldH 494 APACHE_THRIFT_DEFINE_ACCESSOR(fieldH); 495 #endif 496 #ifndef APACHE_THRIFT_ACCESSOR_fieldI 497 #define APACHE_THRIFT_ACCESSOR_fieldI 498 APACHE_THRIFT_DEFINE_ACCESSOR(fieldI); 499 #endif 500 #ifndef APACHE_THRIFT_ACCESSOR_fieldJ 501 #define APACHE_THRIFT_ACCESSOR_fieldJ 502 APACHE_THRIFT_DEFINE_ACCESSOR(fieldJ); 503 #endif 504 #ifndef APACHE_THRIFT_ACCESSOR_fieldK 505 #define APACHE_THRIFT_ACCESSOR_fieldK 506 APACHE_THRIFT_DEFINE_ACCESSOR(fieldK); 507 #endif 508 #ifndef APACHE_THRIFT_ACCESSOR_fieldL 509 #define APACHE_THRIFT_ACCESSOR_fieldL 510 APACHE_THRIFT_DEFINE_ACCESSOR(fieldL); 511 #endif 512 #ifndef APACHE_THRIFT_ACCESSOR_fieldM 513 #define APACHE_THRIFT_ACCESSOR_fieldM 514 APACHE_THRIFT_DEFINE_ACCESSOR(fieldM); 515 #endif 516 #ifndef APACHE_THRIFT_ACCESSOR_fieldN 517 #define APACHE_THRIFT_ACCESSOR_fieldN 518 APACHE_THRIFT_DEFINE_ACCESSOR(fieldN); 519 #endif 520 #ifndef APACHE_THRIFT_ACCESSOR_fieldO 521 #define APACHE_THRIFT_ACCESSOR_fieldO 522 APACHE_THRIFT_DEFINE_ACCESSOR(fieldO); 523 #endif 524 #ifndef APACHE_THRIFT_ACCESSOR_fieldP 525 #define APACHE_THRIFT_ACCESSOR_fieldP 526 APACHE_THRIFT_DEFINE_ACCESSOR(fieldP); 527 #endif 528 #ifndef APACHE_THRIFT_ACCESSOR_fieldQ 529 #define APACHE_THRIFT_ACCESSOR_fieldQ 530 APACHE_THRIFT_DEFINE_ACCESSOR(fieldQ); 531 #endif 532 #ifndef APACHE_THRIFT_ACCESSOR_fieldR 533 #define APACHE_THRIFT_ACCESSOR_fieldR 534 APACHE_THRIFT_DEFINE_ACCESSOR(fieldR); 535 #endif 536 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldR 537 #define APACHE_THRIFT_ACCESSOR_req_fieldR 538 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldR); 539 #endif 540 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldR 541 #define APACHE_THRIFT_ACCESSOR_opt_fieldR 542 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldR); 543 #endif 544 #ifndef APACHE_THRIFT_ACCESSOR_fieldS 545 #define APACHE_THRIFT_ACCESSOR_fieldS 546 APACHE_THRIFT_DEFINE_ACCESSOR(fieldS); 547 #endif 548 #ifndef APACHE_THRIFT_ACCESSOR_fieldT 549 #define APACHE_THRIFT_ACCESSOR_fieldT 550 APACHE_THRIFT_DEFINE_ACCESSOR(fieldT); 551 #endif 552 #ifndef APACHE_THRIFT_ACCESSOR_fieldU 553 #define APACHE_THRIFT_ACCESSOR_fieldU 554 APACHE_THRIFT_DEFINE_ACCESSOR(fieldU); 555 #endif 556 #ifndef APACHE_THRIFT_ACCESSOR_fieldV 557 #define APACHE_THRIFT_ACCESSOR_fieldV 558 APACHE_THRIFT_DEFINE_ACCESSOR(fieldV); 559 #endif 560 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldV 561 #define APACHE_THRIFT_ACCESSOR_req_fieldV 562 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldV); 563 #endif 564 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldV 565 #define APACHE_THRIFT_ACCESSOR_opt_fieldV 566 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldV); 567 #endif 568 #ifndef APACHE_THRIFT_ACCESSOR_fieldW 569 #define APACHE_THRIFT_ACCESSOR_fieldW 570 APACHE_THRIFT_DEFINE_ACCESSOR(fieldW); 571 #endif 572 #ifndef APACHE_THRIFT_ACCESSOR_fieldX 573 #define APACHE_THRIFT_ACCESSOR_fieldX 574 APACHE_THRIFT_DEFINE_ACCESSOR(fieldX); 575 #endif 576 #ifndef APACHE_THRIFT_ACCESSOR_req_fieldX 577 #define APACHE_THRIFT_ACCESSOR_req_fieldX 578 APACHE_THRIFT_DEFINE_ACCESSOR(req_fieldX); 579 #endif 580 #ifndef APACHE_THRIFT_ACCESSOR_opt_fieldX 581 #define APACHE_THRIFT_ACCESSOR_opt_fieldX 582 APACHE_THRIFT_DEFINE_ACCESSOR(opt_fieldX); 583 #endif 584 #ifndef APACHE_THRIFT_ACCESSOR_fieldY 585 #define APACHE_THRIFT_ACCESSOR_fieldY 586 APACHE_THRIFT_DEFINE_ACCESSOR(fieldY); 587 #endif 588 #ifndef APACHE_THRIFT_ACCESSOR_fieldZ 589 #define APACHE_THRIFT_ACCESSOR_fieldZ 590 APACHE_THRIFT_DEFINE_ACCESSOR(fieldZ); 591 #endif 592 #ifndef APACHE_THRIFT_ACCESSOR_fieldAA 593 #define APACHE_THRIFT_ACCESSOR_fieldAA 594 APACHE_THRIFT_DEFINE_ACCESSOR(fieldAA); 595 #endif 596 #ifndef APACHE_THRIFT_ACCESSOR_fieldAB 597 #define APACHE_THRIFT_ACCESSOR_fieldAB 598 APACHE_THRIFT_DEFINE_ACCESSOR(fieldAB); 599 #endif 600 #ifndef APACHE_THRIFT_ACCESSOR_fieldAC 601 #define APACHE_THRIFT_ACCESSOR_fieldAC 602 APACHE_THRIFT_DEFINE_ACCESSOR(fieldAC); 603 #endif 604 #ifndef APACHE_THRIFT_ACCESSOR_fieldAD 605 #define APACHE_THRIFT_ACCESSOR_fieldAD 606 APACHE_THRIFT_DEFINE_ACCESSOR(fieldAD); 607 #endif 608 #ifndef APACHE_THRIFT_ACCESSOR_fieldAE 609 #define APACHE_THRIFT_ACCESSOR_fieldAE 610 APACHE_THRIFT_DEFINE_ACCESSOR(fieldAE); 611 #endif 612 #ifndef APACHE_THRIFT_ACCESSOR_fieldSD 613 #define APACHE_THRIFT_ACCESSOR_fieldSD 614 APACHE_THRIFT_DEFINE_ACCESSOR(fieldSD); 615 #endif 616 #ifndef APACHE_THRIFT_ACCESSOR_MyIncludedInt 617 #define APACHE_THRIFT_ACCESSOR_MyIncludedInt 618 APACHE_THRIFT_DEFINE_ACCESSOR(MyIncludedInt); 619 #endif 620 #ifndef APACHE_THRIFT_ACCESSOR_MyIncludedStruct 621 #define APACHE_THRIFT_ACCESSOR_MyIncludedStruct 622 APACHE_THRIFT_DEFINE_ACCESSOR(MyIncludedStruct); 623 #endif 624 #ifndef APACHE_THRIFT_ACCESSOR_ARefField 625 #define APACHE_THRIFT_ACCESSOR_ARefField 626 APACHE_THRIFT_DEFINE_ACCESSOR(ARefField); 627 #endif 628 #ifndef APACHE_THRIFT_ACCESSOR_ARequiredField 629 #define APACHE_THRIFT_ACCESSOR_ARequiredField 630 APACHE_THRIFT_DEFINE_ACCESSOR(ARequiredField); 631 #endif 632 #ifndef APACHE_THRIFT_ACCESSOR_no_annotation 633 #define APACHE_THRIFT_ACCESSOR_no_annotation 634 APACHE_THRIFT_DEFINE_ACCESSOR(no_annotation); 635 #endif 636 #ifndef APACHE_THRIFT_ACCESSOR_cpp_unique_ref 637 #define APACHE_THRIFT_ACCESSOR_cpp_unique_ref 638 APACHE_THRIFT_DEFINE_ACCESSOR(cpp_unique_ref); 639 #endif 640 #ifndef APACHE_THRIFT_ACCESSOR_cpp2_unique_ref 641 #define APACHE_THRIFT_ACCESSOR_cpp2_unique_ref 642 APACHE_THRIFT_DEFINE_ACCESSOR(cpp2_unique_ref); 643 #endif 644 #ifndef APACHE_THRIFT_ACCESSOR_container_with_ref 645 #define APACHE_THRIFT_ACCESSOR_container_with_ref 646 APACHE_THRIFT_DEFINE_ACCESSOR(container_with_ref); 647 #endif 648 #ifndef APACHE_THRIFT_ACCESSOR_req_cpp_unique_ref 649 #define APACHE_THRIFT_ACCESSOR_req_cpp_unique_ref 650 APACHE_THRIFT_DEFINE_ACCESSOR(req_cpp_unique_ref); 651 #endif 652 #ifndef APACHE_THRIFT_ACCESSOR_req_cpp2_unique_ref 653 #define APACHE_THRIFT_ACCESSOR_req_cpp2_unique_ref 654 APACHE_THRIFT_DEFINE_ACCESSOR(req_cpp2_unique_ref); 655 #endif 656 #ifndef APACHE_THRIFT_ACCESSOR_req_container_with_ref 657 #define APACHE_THRIFT_ACCESSOR_req_container_with_ref 658 APACHE_THRIFT_DEFINE_ACCESSOR(req_container_with_ref); 659 #endif 660 #ifndef APACHE_THRIFT_ACCESSOR_opt_cpp_unique_ref 661 #define APACHE_THRIFT_ACCESSOR_opt_cpp_unique_ref 662 APACHE_THRIFT_DEFINE_ACCESSOR(opt_cpp_unique_ref); 663 #endif 664 #ifndef APACHE_THRIFT_ACCESSOR_opt_cpp2_unique_ref 665 #define APACHE_THRIFT_ACCESSOR_opt_cpp2_unique_ref 666 APACHE_THRIFT_DEFINE_ACCESSOR(opt_cpp2_unique_ref); 667 #endif 668 #ifndef APACHE_THRIFT_ACCESSOR_opt_container_with_ref 669 #define APACHE_THRIFT_ACCESSOR_opt_container_with_ref 670 APACHE_THRIFT_DEFINE_ACCESSOR(opt_container_with_ref); 671 #endif 672 #ifndef APACHE_THRIFT_ACCESSOR_ref_type_unique 673 #define APACHE_THRIFT_ACCESSOR_ref_type_unique 674 APACHE_THRIFT_DEFINE_ACCESSOR(ref_type_unique); 675 #endif 676 #ifndef APACHE_THRIFT_ACCESSOR_ref_type_shared 677 #define APACHE_THRIFT_ACCESSOR_ref_type_shared 678 APACHE_THRIFT_DEFINE_ACCESSOR(ref_type_shared); 679 #endif 680 #ifndef APACHE_THRIFT_ACCESSOR_ref_type_const 681 #define APACHE_THRIFT_ACCESSOR_ref_type_const 682 APACHE_THRIFT_DEFINE_ACCESSOR(ref_type_const); 683 #endif 684 #ifndef APACHE_THRIFT_ACCESSOR_req_ref_type_shared 685 #define APACHE_THRIFT_ACCESSOR_req_ref_type_shared 686 APACHE_THRIFT_DEFINE_ACCESSOR(req_ref_type_shared); 687 #endif 688 #ifndef APACHE_THRIFT_ACCESSOR_req_ref_type_const 689 #define APACHE_THRIFT_ACCESSOR_req_ref_type_const 690 APACHE_THRIFT_DEFINE_ACCESSOR(req_ref_type_const); 691 #endif 692 #ifndef APACHE_THRIFT_ACCESSOR_req_ref_type_unique 693 #define APACHE_THRIFT_ACCESSOR_req_ref_type_unique 694 APACHE_THRIFT_DEFINE_ACCESSOR(req_ref_type_unique); 695 #endif 696 #ifndef APACHE_THRIFT_ACCESSOR_opt_ref_type_const 697 #define APACHE_THRIFT_ACCESSOR_opt_ref_type_const 698 APACHE_THRIFT_DEFINE_ACCESSOR(opt_ref_type_const); 699 #endif 700 #ifndef APACHE_THRIFT_ACCESSOR_opt_ref_type_unique 701 #define APACHE_THRIFT_ACCESSOR_opt_ref_type_unique 702 APACHE_THRIFT_DEFINE_ACCESSOR(opt_ref_type_unique); 703 #endif 704 #ifndef APACHE_THRIFT_ACCESSOR_opt_ref_type_shared 705 #define APACHE_THRIFT_ACCESSOR_opt_ref_type_shared 706 APACHE_THRIFT_DEFINE_ACCESSOR(opt_ref_type_shared); 707 #endif 708 #ifndef APACHE_THRIFT_ACCESSOR_base_type 709 #define APACHE_THRIFT_ACCESSOR_base_type 710 APACHE_THRIFT_DEFINE_ACCESSOR(base_type); 711 #endif 712 #ifndef APACHE_THRIFT_ACCESSOR_list_type 713 #define APACHE_THRIFT_ACCESSOR_list_type 714 APACHE_THRIFT_DEFINE_ACCESSOR(list_type); 715 #endif 716 #ifndef APACHE_THRIFT_ACCESSOR_set_type 717 #define APACHE_THRIFT_ACCESSOR_set_type 718 APACHE_THRIFT_DEFINE_ACCESSOR(set_type); 719 #endif 720 #ifndef APACHE_THRIFT_ACCESSOR_map_type 721 #define APACHE_THRIFT_ACCESSOR_map_type 722 APACHE_THRIFT_DEFINE_ACCESSOR(map_type); 723 #endif 724 #ifndef APACHE_THRIFT_ACCESSOR_map_struct_type 725 #define APACHE_THRIFT_ACCESSOR_map_struct_type 726 APACHE_THRIFT_DEFINE_ACCESSOR(map_struct_type); 727 #endif 728 #ifndef APACHE_THRIFT_ACCESSOR_iobuf_type 729 #define APACHE_THRIFT_ACCESSOR_iobuf_type 730 APACHE_THRIFT_DEFINE_ACCESSOR(iobuf_type); 731 #endif 732 #ifndef APACHE_THRIFT_ACCESSOR_iobuf_ptr 733 #define APACHE_THRIFT_ACCESSOR_iobuf_ptr 734 APACHE_THRIFT_DEFINE_ACCESSOR(iobuf_ptr); 735 #endif 736 #ifndef APACHE_THRIFT_ACCESSOR_list_i32_template 737 #define APACHE_THRIFT_ACCESSOR_list_i32_template 738 APACHE_THRIFT_DEFINE_ACCESSOR(list_i32_template); 739 #endif 740 #ifndef APACHE_THRIFT_ACCESSOR_list_string_template 741 #define APACHE_THRIFT_ACCESSOR_list_string_template 742 APACHE_THRIFT_DEFINE_ACCESSOR(list_string_template); 743 #endif 744 #ifndef APACHE_THRIFT_ACCESSOR_set_template 745 #define APACHE_THRIFT_ACCESSOR_set_template 746 APACHE_THRIFT_DEFINE_ACCESSOR(set_template); 747 #endif 748 #ifndef APACHE_THRIFT_ACCESSOR_map_template 749 #define APACHE_THRIFT_ACCESSOR_map_template 750 APACHE_THRIFT_DEFINE_ACCESSOR(map_template); 751 #endif 752 #ifndef APACHE_THRIFT_ACCESSOR_typedef_list_template 753 #define APACHE_THRIFT_ACCESSOR_typedef_list_template 754 APACHE_THRIFT_DEFINE_ACCESSOR(typedef_list_template); 755 #endif 756 #ifndef APACHE_THRIFT_ACCESSOR_typedef_deque_template 757 #define APACHE_THRIFT_ACCESSOR_typedef_deque_template 758 APACHE_THRIFT_DEFINE_ACCESSOR(typedef_deque_template); 759 #endif 760 #ifndef APACHE_THRIFT_ACCESSOR_typedef_set_template 761 #define APACHE_THRIFT_ACCESSOR_typedef_set_template 762 APACHE_THRIFT_DEFINE_ACCESSOR(typedef_set_template); 763 #endif 764 #ifndef APACHE_THRIFT_ACCESSOR_typedef_map_template 765 #define APACHE_THRIFT_ACCESSOR_typedef_map_template 766 APACHE_THRIFT_DEFINE_ACCESSOR(typedef_map_template); 767 #endif 768 #ifndef APACHE_THRIFT_ACCESSOR_indirection_a 769 #define APACHE_THRIFT_ACCESSOR_indirection_a 770 APACHE_THRIFT_DEFINE_ACCESSOR(indirection_a); 771 #endif 772 #ifndef APACHE_THRIFT_ACCESSOR_indirection_b 773 #define APACHE_THRIFT_ACCESSOR_indirection_b 774 APACHE_THRIFT_DEFINE_ACCESSOR(indirection_b); 775 #endif 776 #ifndef APACHE_THRIFT_ACCESSOR_indirection_c 777 #define APACHE_THRIFT_ACCESSOR_indirection_c 778 APACHE_THRIFT_DEFINE_ACCESSOR(indirection_c); 779 #endif 780 #ifndef APACHE_THRIFT_ACCESSOR_iobuf_type_val 781 #define APACHE_THRIFT_ACCESSOR_iobuf_type_val 782 APACHE_THRIFT_DEFINE_ACCESSOR(iobuf_type_val); 783 #endif 784 #ifndef APACHE_THRIFT_ACCESSOR_iobuf_ptr_val 785 #define APACHE_THRIFT_ACCESSOR_iobuf_ptr_val 786 APACHE_THRIFT_DEFINE_ACCESSOR(iobuf_ptr_val); 787 #endif 788 #ifndef APACHE_THRIFT_ACCESSOR_struct_struct 789 #define APACHE_THRIFT_ACCESSOR_struct_struct 790 APACHE_THRIFT_DEFINE_ACCESSOR(struct_struct); 791 #endif 792 #ifndef APACHE_THRIFT_ACCESSOR_map_of_iobufs 793 #define APACHE_THRIFT_ACCESSOR_map_of_iobufs 794 APACHE_THRIFT_DEFINE_ACCESSOR(map_of_iobufs); 795 #endif 796 #ifndef APACHE_THRIFT_ACCESSOR_map_of_iobuf_ptrs 797 #define APACHE_THRIFT_ACCESSOR_map_of_iobuf_ptrs 798 APACHE_THRIFT_DEFINE_ACCESSOR(map_of_iobuf_ptrs); 799 #endif 800 #ifndef APACHE_THRIFT_ACCESSOR_floatField 801 #define APACHE_THRIFT_ACCESSOR_floatField 802 APACHE_THRIFT_DEFINE_ACCESSOR(floatField); 803 #endif 804 #ifndef APACHE_THRIFT_ACCESSOR_doubleField 805 #define APACHE_THRIFT_ACCESSOR_doubleField 806 APACHE_THRIFT_DEFINE_ACCESSOR(doubleField); 807 #endif 808 #ifndef APACHE_THRIFT_ACCESSOR_floatSide 809 #define APACHE_THRIFT_ACCESSOR_floatSide 810 APACHE_THRIFT_DEFINE_ACCESSOR(floatSide); 811 #endif 812 #ifndef APACHE_THRIFT_ACCESSOR_doubleSide 813 #define APACHE_THRIFT_ACCESSOR_doubleSide 814 APACHE_THRIFT_DEFINE_ACCESSOR(doubleSide); 815 #endif 816 #ifndef APACHE_THRIFT_ACCESSOR_intField 817 #define APACHE_THRIFT_ACCESSOR_intField 818 APACHE_THRIFT_DEFINE_ACCESSOR(intField); 819 #endif 820 } // namespace detail 821 } // namespace thrift 822 } // namespace apache 823 824 // BEGIN declare_enums 825 namespace some { namespace valid { namespace ns { 826 827 enum class MyEnumA { 828 fieldA = 1, 829 fieldB = 2, 830 fieldC = 4, 831 }; 832 833 834 835 836 enum class AnnotatedEnum : std::uint32_t { 837 FIELDA = 2, 838 FIELDB = 4, 839 FIELDC = 9, 840 }; 841 842 843 inline constexpr AnnotatedEnum operator&(AnnotatedEnum a, AnnotatedEnum b) { 844 using E = AnnotatedEnum; 845 using U = std::underlying_type_t<E>; 846 return static_cast<E>(static_cast<U>(a) & static_cast<U>(b)); 847 } 848 inline constexpr AnnotatedEnum& operator&=(AnnotatedEnum& a, AnnotatedEnum b) { 849 return a = a & b; 850 } 851 852 inline constexpr AnnotatedEnum operator|(AnnotatedEnum a, AnnotatedEnum b) { 853 using E = AnnotatedEnum; 854 using U = std::underlying_type_t<E>; 855 return static_cast<E>(static_cast<U>(a) | static_cast<U>(b)); 856 } 857 inline constexpr AnnotatedEnum& operator|=(AnnotatedEnum& a, AnnotatedEnum b) { 858 return a = a | b; 859 } 860 861 inline constexpr AnnotatedEnum operator^(AnnotatedEnum a, AnnotatedEnum b) { 862 using E = AnnotatedEnum; 863 using U = std::underlying_type_t<E>; 864 return static_cast<E>(static_cast<U>(a) ^ static_cast<U>(b)); 865 } 866 inline constexpr AnnotatedEnum& operator^=(AnnotatedEnum& a, AnnotatedEnum b) { 867 return a = a ^ b; 868 } 869 870 inline constexpr AnnotatedEnum operator~(AnnotatedEnum a) { 871 using E = AnnotatedEnum; 872 using U = std::underlying_type_t<E>; 873 return static_cast<E>(~static_cast<U>(a)); 874 } 875 876 enum class AnnotatedEnum2 : short { 877 FIELDA = 2, 878 FIELDB = 4, 879 FIELDC = 9, 880 }; 881 882 883 inline constexpr AnnotatedEnum2 operator&(AnnotatedEnum2 a, AnnotatedEnum2 b) { 884 using E = AnnotatedEnum2; 885 using U = std::underlying_type_t<E>; 886 return static_cast<E>(static_cast<U>(a) & static_cast<U>(b)); 887 } 888 inline constexpr AnnotatedEnum2& operator&=(AnnotatedEnum2& a, AnnotatedEnum2 b) { 889 return a = a & b; 890 } 891 892 inline constexpr AnnotatedEnum2 operator|(AnnotatedEnum2 a, AnnotatedEnum2 b) { 893 using E = AnnotatedEnum2; 894 using U = std::underlying_type_t<E>; 895 return static_cast<E>(static_cast<U>(a) | static_cast<U>(b)); 896 } 897 inline constexpr AnnotatedEnum2& operator|=(AnnotatedEnum2& a, AnnotatedEnum2 b) { 898 return a = a | b; 899 } 900 901 inline constexpr AnnotatedEnum2 operator^(AnnotatedEnum2 a, AnnotatedEnum2 b) { 902 using E = AnnotatedEnum2; 903 using U = std::underlying_type_t<E>; 904 return static_cast<E>(static_cast<U>(a) ^ static_cast<U>(b)); 905 } 906 inline constexpr AnnotatedEnum2& operator^=(AnnotatedEnum2& a, AnnotatedEnum2 b) { 907 return a = a ^ b; 908 } 909 910 inline constexpr AnnotatedEnum2 operator~(AnnotatedEnum2 a) { 911 using E = AnnotatedEnum2; 912 using U = std::underlying_type_t<E>; 913 return static_cast<E>(~static_cast<U>(a)); 914 } 915 916 enum class MyEnumB { 917 AField = 0, 918 }; 919 920 921 922 923 }}} // some::valid::ns 924 925 namespace std { 926 template<> struct hash<::some::valid::ns::MyEnumA> : 927 ::apache::thrift::detail::enum_hash<::some::valid::ns::MyEnumA> {}; 928 template<> struct hash<::some::valid::ns::AnnotatedEnum> : 929 ::apache::thrift::detail::enum_hash<::some::valid::ns::AnnotatedEnum> {}; 930 template<> struct hash<::some::valid::ns::AnnotatedEnum2> : 931 ::apache::thrift::detail::enum_hash<::some::valid::ns::AnnotatedEnum2> {}; 932 template<> struct hash<::some::valid::ns::MyEnumB> : 933 ::apache::thrift::detail::enum_hash<::some::valid::ns::MyEnumB> {}; 934 } // std 935 936 namespace apache { namespace thrift { 937 938 939 template <> struct TEnumDataStorage<::some::valid::ns::MyEnumA>; 940 941 template <> struct TEnumTraits<::some::valid::ns::MyEnumA> { 942 using type = ::some::valid::ns::MyEnumA; 943 944 static constexpr std::size_t const size = 3; 945 static folly::Range<type const*> const values; 946 static folly::Range<folly::StringPiece const*> const names; 947 948 static char const* findName(type value); 949 static bool findValue(char const* name, type* out); 950 951 static constexpr type min() { return type::fieldA; } 952 static constexpr type max() { return type::fieldC; } 953 }; 954 955 956 template <> struct TEnumDataStorage<::some::valid::ns::AnnotatedEnum>; 957 958 template <> struct TEnumTraits<::some::valid::ns::AnnotatedEnum> { 959 using type = ::some::valid::ns::AnnotatedEnum; 960 961 static constexpr std::size_t const size = 3; 962 static folly::Range<type const*> const values; 963 static folly::Range<folly::StringPiece const*> const names; 964 965 static char const* findName(type value); 966 static bool findValue(char const* name, type* out); 967 968 static constexpr type min() { return type::FIELDA; } 969 static constexpr type max() { return type::FIELDC; } 970 }; 971 972 973 template <> struct TEnumDataStorage<::some::valid::ns::AnnotatedEnum2>; 974 975 template <> struct TEnumTraits<::some::valid::ns::AnnotatedEnum2> { 976 using type = ::some::valid::ns::AnnotatedEnum2; 977 978 static constexpr std::size_t const size = 3; 979 static folly::Range<type const*> const values; 980 static folly::Range<folly::StringPiece const*> const names; 981 982 static char const* findName(type value); 983 static bool findValue(char const* name, type* out); 984 985 static constexpr type min() { return type::FIELDA; } 986 static constexpr type max() { return type::FIELDC; } 987 }; 988 989 990 template <> struct TEnumDataStorage<::some::valid::ns::MyEnumB>; 991 992 template <> struct TEnumTraits<::some::valid::ns::MyEnumB> { 993 using type = ::some::valid::ns::MyEnumB; 994 995 static constexpr std::size_t const size = 1; 996 static folly::Range<type const*> const values; 997 static folly::Range<folly::StringPiece const*> const names; 998 999 static char const* findName(type value); 1000 static bool findValue(char const* name, type* out); 1001 1002 static constexpr type min() { return type::AField; } 1003 static constexpr type max() { return type::AField; } 1004 }; 1005 1006 1007 }} // apache::thrift 1008 1009 namespace some { namespace valid { namespace ns { 1010 1011 using _MyEnumA_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<MyEnumA>; 1012 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 1013 extern const _MyEnumA_EnumMapFactory::ValuesToNamesMapType _MyEnumA_VALUES_TO_NAMES; 1014 [[deprecated("use apache::thrift::TEnumTraits")]] 1015 extern const _MyEnumA_EnumMapFactory::NamesToValuesMapType _MyEnumA_NAMES_TO_VALUES; 1016 1017 using _AnnotatedEnum_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<AnnotatedEnum>; 1018 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 1019 extern const _AnnotatedEnum_EnumMapFactory::ValuesToNamesMapType _AnnotatedEnum_VALUES_TO_NAMES; 1020 [[deprecated("use apache::thrift::TEnumTraits")]] 1021 extern const _AnnotatedEnum_EnumMapFactory::NamesToValuesMapType _AnnotatedEnum_NAMES_TO_VALUES; 1022 1023 using _AnnotatedEnum2_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<AnnotatedEnum2>; 1024 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 1025 extern const _AnnotatedEnum2_EnumMapFactory::ValuesToNamesMapType _AnnotatedEnum2_VALUES_TO_NAMES; 1026 [[deprecated("use apache::thrift::TEnumTraits")]] 1027 extern const _AnnotatedEnum2_EnumMapFactory::NamesToValuesMapType _AnnotatedEnum2_NAMES_TO_VALUES; 1028 1029 using _MyEnumB_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<MyEnumB>; 1030 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 1031 extern const _MyEnumB_EnumMapFactory::ValuesToNamesMapType _MyEnumB_VALUES_TO_NAMES; 1032 [[deprecated("use apache::thrift::TEnumTraits")]] 1033 extern const _MyEnumB_EnumMapFactory::NamesToValuesMapType _MyEnumB_NAMES_TO_VALUES; 1034 1035 }}} // some::valid::ns 1036 1037 // END declare_enums 1038 // BEGIN forward_declare 1039 namespace some { namespace valid { namespace ns { 1040 class Empty; 1041 class ASimpleStruct; 1042 class ASimpleStructNoexcept; 1043 class MyStruct; 1044 class SimpleUnion; 1045 class ComplexUnion; 1046 class AnException; 1047 class AnotherException; 1048 class containerStruct; 1049 class MyIncludedStruct; 1050 class AnnotatedStruct; 1051 class ComplexContainerStruct; 1052 class FloatStruct; 1053 class FloatUnion; 1054 class AllRequiredNoExceptMoveCtrStruct; 1055 }}} // some::valid::ns 1056 // END forward_declare 1057 // BEGIN typedefs 1058 namespace some { namespace valid { namespace ns { 1059 typedef ::a::different::ns::AStruct AStruct; 1060 typedef ::apache::thrift::adapt_detail::adapted_t<CustomProtocolAdapter, ::folly::IOBuf> CustomProtocolType; 1061 typedef ::std::int32_t simpleTypeDef; 1062 typedef ::std::map<::std::int16_t, ::std::string> containerTypeDef; 1063 typedef ::std::vector<::std::map<::std::int16_t, ::std::string>> complexContainerTypeDef; 1064 typedef ::std::set<::some::valid::ns::SimpleUnion> unionTypeDef; 1065 typedef ::std::vector<::some::valid::ns::MyStruct> structTypeDef; 1066 typedef ::std::vector<::std::map<::some::valid::ns::Empty, ::some::valid::ns::MyStruct>> complexStructTypeDef; 1067 typedef ::std::vector<::some::valid::ns::complexStructTypeDef> mostComplexTypeDef; 1068 typedef Foo IndirectionA; 1069 typedef Baz IndirectionC; 1070 typedef Bar IndirectionB; 1071 typedef FooBar IndirectionD; 1072 typedef ::std::map<::some::valid::ns::MyEnumA, ::std::string> HashedTypedef; 1073 typedef CppFakeI32 CppFakeI32; 1074 typedef folly::small_vector<int64_t, 8 /* maxInline */> FollySmallVectorI64; 1075 typedef folly::sorted_vector_set<std::string> SortedVectorSetString; 1076 typedef FakeMap FakeMap; 1077 typedef std::unordered_map<std::string, containerStruct> UnorderedMapStruct; 1078 typedef std::list<::std::int32_t> std_list; 1079 typedef std::deque<::std::string> std_deque; 1080 typedef folly::sorted_vector_set<::std::string> folly_set; 1081 typedef folly::sorted_vector_map<::std::int64_t, ::std::string> folly_map; 1082 typedef folly::IOBuf IOBuf; 1083 typedef std::unique_ptr<folly::IOBuf> IOBufPtr; 1084 1085 }}} // some::valid::ns 1086 // END typedefs 1087 // BEGIN hash_and_equal_to 1088 namespace std { 1089 1090 template<> struct hash<typename ::some::valid::ns::MyIncludedStruct> { 1091 size_t operator()(const ::some::valid::ns::MyIncludedStruct&) const; 1092 }; 1093 template<> struct equal_to<typename ::some::valid::ns::MyIncludedStruct> { 1094 bool operator()(const ::some::valid::ns::MyIncludedStruct&,const ::some::valid::ns::MyIncludedStruct&) const; 1095 }; 1096 1097 template<> struct hash<typename ::some::valid::ns::AnnotatedStruct> { 1098 size_t operator()(const ::some::valid::ns::AnnotatedStruct&) const; 1099 }; 1100 template<> struct equal_to<typename ::some::valid::ns::AnnotatedStruct> { 1101 bool operator()(const ::some::valid::ns::AnnotatedStruct&,const ::some::valid::ns::AnnotatedStruct&) const; 1102 }; 1103 } // std 1104 // END hash_and_equal_to 1105 namespace some { namespace valid { namespace ns { 1106 using ::apache::thrift::detail::operator!=; 1107 using ::apache::thrift::detail::operator>; 1108 using ::apache::thrift::detail::operator<=; 1109 using ::apache::thrift::detail::operator>=; 1110 }}} // some::valid::ns 1111 namespace some { namespace valid { namespace ns { 1112 class Empty final { 1113 private: 1114 friend struct ::apache::thrift::detail::st::struct_private_access; 1115 1116 // used by a static_assert in the corresponding source 1117 static constexpr bool __fbthrift_cpp2_gen_json = true; 1118 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1119 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1120 1121 void __fbthrift_clear(); 1122 1123 public: 1124 using __fbthrift_cpp2_type = Empty; 1125 static constexpr bool __fbthrift_cpp2_is_union = 1126 false; 1127 1128 1129 public: 1130 1131 Empty() { 1132 } 1133 // FragileConstructor for use in initialization lists only. 1134 [[deprecated("This constructor is deprecated")]] 1135 Empty(apache::thrift::FragileConstructor); 1136 1137 Empty(Empty&&) = default; 1138 1139 Empty(const Empty&) = default; 1140 1141 1142 Empty& operator=(Empty&&) = default; 1143 1144 Empty& operator=(const Empty&) = default; 1145 1146 public: 1147 1148 bool operator==(const Empty&) const; 1149 bool operator<(const Empty&) const; 1150 1151 template <class Protocol_> 1152 uint32_t read(Protocol_* iprot); 1153 template <class Protocol_> 1154 uint32_t serializedSize(Protocol_ const* prot_) const; 1155 template <class Protocol_> 1156 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 1157 template <class Protocol_> 1158 uint32_t write(Protocol_* prot_) const; 1159 1160 private: 1161 template <class Protocol_> 1162 void readNoXfer(Protocol_* iprot); 1163 1164 friend class ::apache::thrift::Cpp2Ops<Empty>; 1165 friend void swap(Empty& a, Empty& b); 1166 }; 1167 1168 template <class Protocol_> 1169 uint32_t Empty::read(Protocol_* iprot) { 1170 auto _xferStart = iprot->getCursorPosition(); 1171 readNoXfer(iprot); 1172 return iprot->getCursorPosition() - _xferStart; 1173 } 1174 1175 }}} // some::valid::ns 1176 namespace some { namespace valid { namespace ns { 1177 class ASimpleStruct final { 1178 private: 1179 friend struct ::apache::thrift::detail::st::struct_private_access; 1180 1181 // used by a static_assert in the corresponding source 1182 static constexpr bool __fbthrift_cpp2_gen_json = true; 1183 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1184 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1185 1186 void __fbthrift_clear(); 1187 1188 public: 1189 using __fbthrift_cpp2_type = ASimpleStruct; 1190 static constexpr bool __fbthrift_cpp2_is_union = 1191 false; 1192 1193 1194 public: 1195 1196 ASimpleStruct() : 1197 __fbthrift_field_boolField() { 1198 } 1199 // FragileConstructor for use in initialization lists only. 1200 [[deprecated("This constructor is deprecated")]] 1201 ASimpleStruct(apache::thrift::FragileConstructor, ::std::int64_t boolField__arg); 1202 1203 ASimpleStruct(ASimpleStruct&&) = default; 1204 1205 ASimpleStruct(const ASimpleStruct&) = default; 1206 1207 1208 ASimpleStruct& operator=(ASimpleStruct&&) = default; 1209 1210 ASimpleStruct& operator=(const ASimpleStruct&) = default; 1211 private: 1212 ::std::int64_t __fbthrift_field_boolField; 1213 private: 1214 apache::thrift::detail::isset_bitset<1, false> __isset; 1215 1216 public: 1217 1218 bool operator==(const ASimpleStruct&) const; 1219 bool operator<(const ASimpleStruct&) const; 1220 1221 template <typename..., typename T = ::std::int64_t> 1222 FOLLY_ERASE ::apache::thrift::field_ref<const T&> boolField_ref() const& { 1223 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1224 } 1225 1226 template <typename..., typename T = ::std::int64_t> 1227 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> boolField_ref() const&& { 1228 return {static_cast<const T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1229 } 1230 1231 template <typename..., typename T = ::std::int64_t> 1232 FOLLY_ERASE ::apache::thrift::field_ref<T&> boolField_ref() & { 1233 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1234 } 1235 1236 template <typename..., typename T = ::std::int64_t> 1237 FOLLY_ERASE ::apache::thrift::field_ref<T&&> boolField_ref() && { 1238 return {static_cast<T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1239 } 1240 1241 template <typename..., typename T = ::std::int64_t> 1242 FOLLY_ERASE ::apache::thrift::field_ref<const T&> boolField() const& { 1243 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1244 } 1245 1246 template <typename..., typename T = ::std::int64_t> 1247 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> boolField() const&& { 1248 return {static_cast<const T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1249 } 1250 1251 template <typename..., typename T = ::std::int64_t> 1252 FOLLY_ERASE ::apache::thrift::field_ref<T&> boolField() & { 1253 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1254 } 1255 1256 template <typename..., typename T = ::std::int64_t> 1257 FOLLY_ERASE ::apache::thrift::field_ref<T&&> boolField() && { 1258 return {static_cast<T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1259 } 1260 1261 ::std::int64_t get_boolField() const { 1262 return __fbthrift_field_boolField; 1263 } 1264 1265 [[deprecated("Use `FOO.boolField_ref() = BAR;` instead of `FOO.set_boolField(BAR);`")]] 1266 ::std::int64_t& set_boolField(::std::int64_t boolField_) { 1267 boolField_ref() = boolField_; 1268 return __fbthrift_field_boolField; 1269 } 1270 1271 template <class Protocol_> 1272 uint32_t read(Protocol_* iprot); 1273 template <class Protocol_> 1274 uint32_t serializedSize(Protocol_ const* prot_) const; 1275 template <class Protocol_> 1276 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 1277 template <class Protocol_> 1278 uint32_t write(Protocol_* prot_) const; 1279 1280 private: 1281 template <class Protocol_> 1282 void readNoXfer(Protocol_* iprot); 1283 1284 friend class ::apache::thrift::Cpp2Ops<ASimpleStruct>; 1285 friend void swap(ASimpleStruct& a, ASimpleStruct& b); 1286 }; 1287 1288 template <class Protocol_> 1289 uint32_t ASimpleStruct::read(Protocol_* iprot) { 1290 auto _xferStart = iprot->getCursorPosition(); 1291 readNoXfer(iprot); 1292 return iprot->getCursorPosition() - _xferStart; 1293 } 1294 1295 }}} // some::valid::ns 1296 namespace some { namespace valid { namespace ns { 1297 class ASimpleStructNoexcept final { 1298 private: 1299 friend struct ::apache::thrift::detail::st::struct_private_access; 1300 1301 // used by a static_assert in the corresponding source 1302 static constexpr bool __fbthrift_cpp2_gen_json = true; 1303 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1304 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1305 1306 void __fbthrift_clear(); 1307 1308 public: 1309 using __fbthrift_cpp2_type = ASimpleStructNoexcept; 1310 static constexpr bool __fbthrift_cpp2_is_union = 1311 false; 1312 1313 1314 public: 1315 1316 ASimpleStructNoexcept() : 1317 __fbthrift_field_boolField() { 1318 } 1319 // FragileConstructor for use in initialization lists only. 1320 [[deprecated("This constructor is deprecated")]] 1321 ASimpleStructNoexcept(apache::thrift::FragileConstructor, ::std::int64_t boolField__arg); 1322 1323 ASimpleStructNoexcept(ASimpleStructNoexcept&&) = default; 1324 1325 ASimpleStructNoexcept(const ASimpleStructNoexcept&) = default; 1326 1327 1328 ASimpleStructNoexcept& operator=(ASimpleStructNoexcept&&) = default; 1329 1330 ASimpleStructNoexcept& operator=(const ASimpleStructNoexcept&) = default; 1331 private: 1332 ::std::int64_t __fbthrift_field_boolField; 1333 private: 1334 apache::thrift::detail::isset_bitset<1, false> __isset; 1335 1336 public: 1337 1338 bool operator==(const ASimpleStructNoexcept&) const; 1339 bool operator<(const ASimpleStructNoexcept&) const; 1340 1341 template <typename..., typename T = ::std::int64_t> 1342 FOLLY_ERASE ::apache::thrift::field_ref<const T&> boolField_ref() const& { 1343 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1344 } 1345 1346 template <typename..., typename T = ::std::int64_t> 1347 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> boolField_ref() const&& { 1348 return {static_cast<const T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1349 } 1350 1351 template <typename..., typename T = ::std::int64_t> 1352 FOLLY_ERASE ::apache::thrift::field_ref<T&> boolField_ref() & { 1353 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1354 } 1355 1356 template <typename..., typename T = ::std::int64_t> 1357 FOLLY_ERASE ::apache::thrift::field_ref<T&&> boolField_ref() && { 1358 return {static_cast<T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1359 } 1360 1361 template <typename..., typename T = ::std::int64_t> 1362 FOLLY_ERASE ::apache::thrift::field_ref<const T&> boolField() const& { 1363 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1364 } 1365 1366 template <typename..., typename T = ::std::int64_t> 1367 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> boolField() const&& { 1368 return {static_cast<const T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1369 } 1370 1371 template <typename..., typename T = ::std::int64_t> 1372 FOLLY_ERASE ::apache::thrift::field_ref<T&> boolField() & { 1373 return {this->__fbthrift_field_boolField, __isset.at(0), __isset.bit(0)}; 1374 } 1375 1376 template <typename..., typename T = ::std::int64_t> 1377 FOLLY_ERASE ::apache::thrift::field_ref<T&&> boolField() && { 1378 return {static_cast<T&&>(this->__fbthrift_field_boolField), __isset.at(0), __isset.bit(0)}; 1379 } 1380 1381 ::std::int64_t get_boolField() const { 1382 return __fbthrift_field_boolField; 1383 } 1384 1385 [[deprecated("Use `FOO.boolField_ref() = BAR;` instead of `FOO.set_boolField(BAR);`")]] 1386 ::std::int64_t& set_boolField(::std::int64_t boolField_) { 1387 boolField_ref() = boolField_; 1388 return __fbthrift_field_boolField; 1389 } 1390 1391 template <class Protocol_> 1392 uint32_t read(Protocol_* iprot); 1393 template <class Protocol_> 1394 uint32_t serializedSize(Protocol_ const* prot_) const; 1395 template <class Protocol_> 1396 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 1397 template <class Protocol_> 1398 uint32_t write(Protocol_* prot_) const; 1399 1400 private: 1401 template <class Protocol_> 1402 void readNoXfer(Protocol_* iprot); 1403 1404 friend class ::apache::thrift::Cpp2Ops<ASimpleStructNoexcept>; 1405 friend void swap(ASimpleStructNoexcept& a, ASimpleStructNoexcept& b); 1406 }; 1407 1408 template <class Protocol_> 1409 uint32_t ASimpleStructNoexcept::read(Protocol_* iprot) { 1410 auto _xferStart = iprot->getCursorPosition(); 1411 readNoXfer(iprot); 1412 return iprot->getCursorPosition() - _xferStart; 1413 } 1414 1415 }}} // some::valid::ns 1416 namespace some { namespace valid { namespace ns { 1417 class MyStruct final { 1418 private: 1419 friend struct ::apache::thrift::detail::st::struct_private_access; 1420 1421 // used by a static_assert in the corresponding source 1422 static constexpr bool __fbthrift_cpp2_gen_json = true; 1423 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1424 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1425 1426 void __fbthrift_clear(); 1427 1428 public: 1429 using __fbthrift_cpp2_type = MyStruct; 1430 static constexpr bool __fbthrift_cpp2_is_union = 1431 false; 1432 1433 1434 public: 1435 1436 MyStruct(); 1437 1438 // FragileConstructor for use in initialization lists only. 1439 [[deprecated("This constructor is deprecated")]] 1440 MyStruct(apache::thrift::FragileConstructor, bool MyBoolField__arg, ::std::int64_t MyIntField__arg, ::std::string MyStringField__arg, ::std::string MyStringField2__arg, ::std::string MyBinaryField__arg, ::std::string MyBinaryField2__arg, ::std::string MyBinaryField3__arg, ::std::vector<::std::string> MyBinaryListField4__arg, ::std::map<::some::valid::ns::MyEnumA, ::std::string> MyMapEnumAndInt__arg, ::some::valid::ns::CustomProtocolType MyCustomField__arg, ::some::valid::ns::CustomProtocolType MyOptCustomField__arg); 1441 1442 MyStruct(MyStruct&&) noexcept; 1443 MyStruct(const MyStruct& src); 1444 1445 1446 MyStruct& operator=(MyStruct&&) noexcept; 1447 MyStruct& operator=(const MyStruct& src); 1448 1449 ~MyStruct(); 1450 1451 private: 1452 bool __fbthrift_field_MyBoolField; 1453 private: 1454 ::std::int64_t __fbthrift_field_MyIntField; 1455 private: 1456 ::std::string __fbthrift_field_MyStringField; 1457 private: 1458 ::std::string __fbthrift_field_MyStringField2; 1459 private: 1460 ::std::string __fbthrift_field_MyBinaryField; 1461 private: 1462 ::std::string __fbthrift_field_MyBinaryField2; 1463 public: 1464 ::std::string MyBinaryField3; 1465 private: 1466 ::std::vector<::std::string> __fbthrift_field_MyBinaryListField4; 1467 private: 1468 ::std::map<::some::valid::ns::MyEnumA, ::std::string> __fbthrift_field_MyMapEnumAndInt; 1469 private: 1470 ::some::valid::ns::CustomProtocolType __fbthrift_field_MyCustomField; 1471 private: 1472 ::some::valid::ns::CustomProtocolType __fbthrift_field_MyOptCustomField; 1473 private: 1474 apache::thrift::detail::isset_bitset<10, false> __isset; 1475 1476 public: 1477 1478 bool operator==(const MyStruct&) const; 1479 bool operator<(const MyStruct&) const; 1480 1481 template <typename..., typename T = bool> 1482 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBoolField_ref() const& { 1483 return {this->__fbthrift_field_MyBoolField, __isset.at(0), __isset.bit(0)}; 1484 } 1485 1486 template <typename..., typename T = bool> 1487 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBoolField_ref() const&& { 1488 return {static_cast<const T&&>(this->__fbthrift_field_MyBoolField), __isset.at(0), __isset.bit(0)}; 1489 } 1490 1491 template <typename..., typename T = bool> 1492 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBoolField_ref() & { 1493 return {this->__fbthrift_field_MyBoolField, __isset.at(0), __isset.bit(0)}; 1494 } 1495 1496 template <typename..., typename T = bool> 1497 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBoolField_ref() && { 1498 return {static_cast<T&&>(this->__fbthrift_field_MyBoolField), __isset.at(0), __isset.bit(0)}; 1499 } 1500 1501 template <typename..., typename T = bool> 1502 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBoolField() const& { 1503 return {this->__fbthrift_field_MyBoolField, __isset.at(0), __isset.bit(0)}; 1504 } 1505 1506 template <typename..., typename T = bool> 1507 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBoolField() const&& { 1508 return {static_cast<const T&&>(this->__fbthrift_field_MyBoolField), __isset.at(0), __isset.bit(0)}; 1509 } 1510 1511 template <typename..., typename T = bool> 1512 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBoolField() & { 1513 return {this->__fbthrift_field_MyBoolField, __isset.at(0), __isset.bit(0)}; 1514 } 1515 1516 template <typename..., typename T = bool> 1517 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBoolField() && { 1518 return {static_cast<T&&>(this->__fbthrift_field_MyBoolField), __isset.at(0), __isset.bit(0)}; 1519 } 1520 1521 template <typename..., typename T = ::std::int64_t> 1522 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIntField_ref() const& { 1523 return {this->__fbthrift_field_MyIntField, __isset.at(1), __isset.bit(1)}; 1524 } 1525 1526 template <typename..., typename T = ::std::int64_t> 1527 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIntField_ref() const&& { 1528 return {static_cast<const T&&>(this->__fbthrift_field_MyIntField), __isset.at(1), __isset.bit(1)}; 1529 } 1530 1531 template <typename..., typename T = ::std::int64_t> 1532 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIntField_ref() & { 1533 return {this->__fbthrift_field_MyIntField, __isset.at(1), __isset.bit(1)}; 1534 } 1535 1536 template <typename..., typename T = ::std::int64_t> 1537 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIntField_ref() && { 1538 return {static_cast<T&&>(this->__fbthrift_field_MyIntField), __isset.at(1), __isset.bit(1)}; 1539 } 1540 1541 template <typename..., typename T = ::std::int64_t> 1542 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIntField() const& { 1543 return {this->__fbthrift_field_MyIntField, __isset.at(1), __isset.bit(1)}; 1544 } 1545 1546 template <typename..., typename T = ::std::int64_t> 1547 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIntField() const&& { 1548 return {static_cast<const T&&>(this->__fbthrift_field_MyIntField), __isset.at(1), __isset.bit(1)}; 1549 } 1550 1551 template <typename..., typename T = ::std::int64_t> 1552 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIntField() & { 1553 return {this->__fbthrift_field_MyIntField, __isset.at(1), __isset.bit(1)}; 1554 } 1555 1556 template <typename..., typename T = ::std::int64_t> 1557 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIntField() && { 1558 return {static_cast<T&&>(this->__fbthrift_field_MyIntField), __isset.at(1), __isset.bit(1)}; 1559 } 1560 1561 template <typename..., typename T = ::std::string> 1562 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyStringField_ref() const& { 1563 return {this->__fbthrift_field_MyStringField, __isset.at(2), __isset.bit(2)}; 1564 } 1565 1566 template <typename..., typename T = ::std::string> 1567 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyStringField_ref() const&& { 1568 return {static_cast<const T&&>(this->__fbthrift_field_MyStringField), __isset.at(2), __isset.bit(2)}; 1569 } 1570 1571 template <typename..., typename T = ::std::string> 1572 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyStringField_ref() & { 1573 return {this->__fbthrift_field_MyStringField, __isset.at(2), __isset.bit(2)}; 1574 } 1575 1576 template <typename..., typename T = ::std::string> 1577 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyStringField_ref() && { 1578 return {static_cast<T&&>(this->__fbthrift_field_MyStringField), __isset.at(2), __isset.bit(2)}; 1579 } 1580 1581 template <typename..., typename T = ::std::string> 1582 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyStringField() const& { 1583 return {this->__fbthrift_field_MyStringField, __isset.at(2), __isset.bit(2)}; 1584 } 1585 1586 template <typename..., typename T = ::std::string> 1587 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyStringField() const&& { 1588 return {static_cast<const T&&>(this->__fbthrift_field_MyStringField), __isset.at(2), __isset.bit(2)}; 1589 } 1590 1591 template <typename..., typename T = ::std::string> 1592 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyStringField() & { 1593 return {this->__fbthrift_field_MyStringField, __isset.at(2), __isset.bit(2)}; 1594 } 1595 1596 template <typename..., typename T = ::std::string> 1597 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyStringField() && { 1598 return {static_cast<T&&>(this->__fbthrift_field_MyStringField), __isset.at(2), __isset.bit(2)}; 1599 } 1600 1601 template <typename..., typename T = ::std::string> 1602 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyStringField2_ref() const& { 1603 return {this->__fbthrift_field_MyStringField2, __isset.at(3), __isset.bit(3)}; 1604 } 1605 1606 template <typename..., typename T = ::std::string> 1607 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyStringField2_ref() const&& { 1608 return {static_cast<const T&&>(this->__fbthrift_field_MyStringField2), __isset.at(3), __isset.bit(3)}; 1609 } 1610 1611 template <typename..., typename T = ::std::string> 1612 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyStringField2_ref() & { 1613 return {this->__fbthrift_field_MyStringField2, __isset.at(3), __isset.bit(3)}; 1614 } 1615 1616 template <typename..., typename T = ::std::string> 1617 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyStringField2_ref() && { 1618 return {static_cast<T&&>(this->__fbthrift_field_MyStringField2), __isset.at(3), __isset.bit(3)}; 1619 } 1620 1621 template <typename..., typename T = ::std::string> 1622 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyStringField2() const& { 1623 return {this->__fbthrift_field_MyStringField2, __isset.at(3), __isset.bit(3)}; 1624 } 1625 1626 template <typename..., typename T = ::std::string> 1627 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyStringField2() const&& { 1628 return {static_cast<const T&&>(this->__fbthrift_field_MyStringField2), __isset.at(3), __isset.bit(3)}; 1629 } 1630 1631 template <typename..., typename T = ::std::string> 1632 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyStringField2() & { 1633 return {this->__fbthrift_field_MyStringField2, __isset.at(3), __isset.bit(3)}; 1634 } 1635 1636 template <typename..., typename T = ::std::string> 1637 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyStringField2() && { 1638 return {static_cast<T&&>(this->__fbthrift_field_MyStringField2), __isset.at(3), __isset.bit(3)}; 1639 } 1640 1641 template <typename..., typename T = ::std::string> 1642 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBinaryField_ref() const& { 1643 return {this->__fbthrift_field_MyBinaryField, __isset.at(4), __isset.bit(4)}; 1644 } 1645 1646 template <typename..., typename T = ::std::string> 1647 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBinaryField_ref() const&& { 1648 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryField), __isset.at(4), __isset.bit(4)}; 1649 } 1650 1651 template <typename..., typename T = ::std::string> 1652 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBinaryField_ref() & { 1653 return {this->__fbthrift_field_MyBinaryField, __isset.at(4), __isset.bit(4)}; 1654 } 1655 1656 template <typename..., typename T = ::std::string> 1657 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBinaryField_ref() && { 1658 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryField), __isset.at(4), __isset.bit(4)}; 1659 } 1660 1661 template <typename..., typename T = ::std::string> 1662 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBinaryField() const& { 1663 return {this->__fbthrift_field_MyBinaryField, __isset.at(4), __isset.bit(4)}; 1664 } 1665 1666 template <typename..., typename T = ::std::string> 1667 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBinaryField() const&& { 1668 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryField), __isset.at(4), __isset.bit(4)}; 1669 } 1670 1671 template <typename..., typename T = ::std::string> 1672 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBinaryField() & { 1673 return {this->__fbthrift_field_MyBinaryField, __isset.at(4), __isset.bit(4)}; 1674 } 1675 1676 template <typename..., typename T = ::std::string> 1677 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBinaryField() && { 1678 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryField), __isset.at(4), __isset.bit(4)}; 1679 } 1680 1681 template <typename..., typename T = ::std::string> 1682 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> MyBinaryField2_ref() const& { 1683 return {this->__fbthrift_field_MyBinaryField2, __isset.at(5), __isset.bit(5)}; 1684 } 1685 1686 template <typename..., typename T = ::std::string> 1687 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> MyBinaryField2_ref() const&& { 1688 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryField2), __isset.at(5), __isset.bit(5)}; 1689 } 1690 1691 template <typename..., typename T = ::std::string> 1692 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> MyBinaryField2_ref() & { 1693 return {this->__fbthrift_field_MyBinaryField2, __isset.at(5), __isset.bit(5)}; 1694 } 1695 1696 template <typename..., typename T = ::std::string> 1697 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> MyBinaryField2_ref() && { 1698 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryField2), __isset.at(5), __isset.bit(5)}; 1699 } 1700 1701 template <typename..., typename T = ::std::string> 1702 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> MyBinaryField2() const& { 1703 return {this->__fbthrift_field_MyBinaryField2, __isset.at(5), __isset.bit(5)}; 1704 } 1705 1706 template <typename..., typename T = ::std::string> 1707 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> MyBinaryField2() const&& { 1708 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryField2), __isset.at(5), __isset.bit(5)}; 1709 } 1710 1711 template <typename..., typename T = ::std::string> 1712 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> MyBinaryField2() & { 1713 return {this->__fbthrift_field_MyBinaryField2, __isset.at(5), __isset.bit(5)}; 1714 } 1715 1716 template <typename..., typename T = ::std::string> 1717 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> MyBinaryField2() && { 1718 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryField2), __isset.at(5), __isset.bit(5)}; 1719 } 1720 1721 template <typename..., typename T = ::std::string> 1722 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> MyBinaryField3_ref() const& { 1723 return ::apache::thrift::required_field_ref<const T&>{this->MyBinaryField3}; 1724 } 1725 1726 template <typename..., typename T = ::std::string> 1727 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> MyBinaryField3_ref() const&& { 1728 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->MyBinaryField3)}; 1729 } 1730 1731 template <typename..., typename T = ::std::string> 1732 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> MyBinaryField3_ref() & { 1733 return ::apache::thrift::required_field_ref<T&>{this->MyBinaryField3}; 1734 } 1735 1736 template <typename..., typename T = ::std::string> 1737 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> MyBinaryField3_ref() && { 1738 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->MyBinaryField3)}; 1739 } 1740 1741 template <typename..., typename T = ::std::vector<::std::string>> 1742 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBinaryListField4_ref() const& { 1743 return {this->__fbthrift_field_MyBinaryListField4, __isset.at(6), __isset.bit(6)}; 1744 } 1745 1746 template <typename..., typename T = ::std::vector<::std::string>> 1747 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBinaryListField4_ref() const&& { 1748 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryListField4), __isset.at(6), __isset.bit(6)}; 1749 } 1750 1751 template <typename..., typename T = ::std::vector<::std::string>> 1752 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBinaryListField4_ref() & { 1753 return {this->__fbthrift_field_MyBinaryListField4, __isset.at(6), __isset.bit(6)}; 1754 } 1755 1756 template <typename..., typename T = ::std::vector<::std::string>> 1757 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBinaryListField4_ref() && { 1758 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryListField4), __isset.at(6), __isset.bit(6)}; 1759 } 1760 1761 template <typename..., typename T = ::std::vector<::std::string>> 1762 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyBinaryListField4() const& { 1763 return {this->__fbthrift_field_MyBinaryListField4, __isset.at(6), __isset.bit(6)}; 1764 } 1765 1766 template <typename..., typename T = ::std::vector<::std::string>> 1767 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyBinaryListField4() const&& { 1768 return {static_cast<const T&&>(this->__fbthrift_field_MyBinaryListField4), __isset.at(6), __isset.bit(6)}; 1769 } 1770 1771 template <typename..., typename T = ::std::vector<::std::string>> 1772 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyBinaryListField4() & { 1773 return {this->__fbthrift_field_MyBinaryListField4, __isset.at(6), __isset.bit(6)}; 1774 } 1775 1776 template <typename..., typename T = ::std::vector<::std::string>> 1777 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyBinaryListField4() && { 1778 return {static_cast<T&&>(this->__fbthrift_field_MyBinaryListField4), __isset.at(6), __isset.bit(6)}; 1779 } 1780 1781 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1782 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyMapEnumAndInt_ref() const& { 1783 return {this->__fbthrift_field_MyMapEnumAndInt, __isset.at(7), __isset.bit(7)}; 1784 } 1785 1786 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1787 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyMapEnumAndInt_ref() const&& { 1788 return {static_cast<const T&&>(this->__fbthrift_field_MyMapEnumAndInt), __isset.at(7), __isset.bit(7)}; 1789 } 1790 1791 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1792 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyMapEnumAndInt_ref() & { 1793 return {this->__fbthrift_field_MyMapEnumAndInt, __isset.at(7), __isset.bit(7)}; 1794 } 1795 1796 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1797 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyMapEnumAndInt_ref() && { 1798 return {static_cast<T&&>(this->__fbthrift_field_MyMapEnumAndInt), __isset.at(7), __isset.bit(7)}; 1799 } 1800 1801 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1802 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyMapEnumAndInt() const& { 1803 return {this->__fbthrift_field_MyMapEnumAndInt, __isset.at(7), __isset.bit(7)}; 1804 } 1805 1806 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1807 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyMapEnumAndInt() const&& { 1808 return {static_cast<const T&&>(this->__fbthrift_field_MyMapEnumAndInt), __isset.at(7), __isset.bit(7)}; 1809 } 1810 1811 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1812 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyMapEnumAndInt() & { 1813 return {this->__fbthrift_field_MyMapEnumAndInt, __isset.at(7), __isset.bit(7)}; 1814 } 1815 1816 template <typename..., typename T = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 1817 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyMapEnumAndInt() && { 1818 return {static_cast<T&&>(this->__fbthrift_field_MyMapEnumAndInt), __isset.at(7), __isset.bit(7)}; 1819 } 1820 1821 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1822 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyCustomField_ref() const& { 1823 return {this->__fbthrift_field_MyCustomField, __isset.at(8), __isset.bit(8)}; 1824 } 1825 1826 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1827 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyCustomField_ref() const&& { 1828 return {static_cast<const T&&>(this->__fbthrift_field_MyCustomField), __isset.at(8), __isset.bit(8)}; 1829 } 1830 1831 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1832 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyCustomField_ref() & { 1833 return {this->__fbthrift_field_MyCustomField, __isset.at(8), __isset.bit(8)}; 1834 } 1835 1836 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1837 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyCustomField_ref() && { 1838 return {static_cast<T&&>(this->__fbthrift_field_MyCustomField), __isset.at(8), __isset.bit(8)}; 1839 } 1840 1841 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1842 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyCustomField() const& { 1843 return {this->__fbthrift_field_MyCustomField, __isset.at(8), __isset.bit(8)}; 1844 } 1845 1846 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1847 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyCustomField() const&& { 1848 return {static_cast<const T&&>(this->__fbthrift_field_MyCustomField), __isset.at(8), __isset.bit(8)}; 1849 } 1850 1851 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1852 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyCustomField() & { 1853 return {this->__fbthrift_field_MyCustomField, __isset.at(8), __isset.bit(8)}; 1854 } 1855 1856 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1857 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyCustomField() && { 1858 return {static_cast<T&&>(this->__fbthrift_field_MyCustomField), __isset.at(8), __isset.bit(8)}; 1859 } 1860 1861 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1862 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> MyOptCustomField_ref() const& { 1863 return {this->__fbthrift_field_MyOptCustomField, __isset.at(9), __isset.bit(9)}; 1864 } 1865 1866 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1867 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> MyOptCustomField_ref() const&& { 1868 return {static_cast<const T&&>(this->__fbthrift_field_MyOptCustomField), __isset.at(9), __isset.bit(9)}; 1869 } 1870 1871 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1872 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> MyOptCustomField_ref() & { 1873 return {this->__fbthrift_field_MyOptCustomField, __isset.at(9), __isset.bit(9)}; 1874 } 1875 1876 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1877 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> MyOptCustomField_ref() && { 1878 return {static_cast<T&&>(this->__fbthrift_field_MyOptCustomField), __isset.at(9), __isset.bit(9)}; 1879 } 1880 1881 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1882 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> MyOptCustomField() const& { 1883 return {this->__fbthrift_field_MyOptCustomField, __isset.at(9), __isset.bit(9)}; 1884 } 1885 1886 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1887 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> MyOptCustomField() const&& { 1888 return {static_cast<const T&&>(this->__fbthrift_field_MyOptCustomField), __isset.at(9), __isset.bit(9)}; 1889 } 1890 1891 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1892 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> MyOptCustomField() & { 1893 return {this->__fbthrift_field_MyOptCustomField, __isset.at(9), __isset.bit(9)}; 1894 } 1895 1896 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 1897 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> MyOptCustomField() && { 1898 return {static_cast<T&&>(this->__fbthrift_field_MyOptCustomField), __isset.at(9), __isset.bit(9)}; 1899 } 1900 1901 bool get_MyBoolField() const { 1902 return __fbthrift_field_MyBoolField; 1903 } 1904 1905 [[deprecated("Use `FOO.MyBoolField_ref() = BAR;` instead of `FOO.set_MyBoolField(BAR);`")]] 1906 bool& set_MyBoolField(bool MyBoolField_) { 1907 MyBoolField_ref() = MyBoolField_; 1908 return __fbthrift_field_MyBoolField; 1909 } 1910 1911 ::std::int64_t get_MyIntField() const { 1912 return __fbthrift_field_MyIntField; 1913 } 1914 1915 [[deprecated("Use `FOO.MyIntField_ref() = BAR;` instead of `FOO.set_MyIntField(BAR);`")]] 1916 ::std::int64_t& set_MyIntField(::std::int64_t MyIntField_) { 1917 MyIntField_ref() = MyIntField_; 1918 return __fbthrift_field_MyIntField; 1919 } 1920 1921 const ::std::string& get_MyStringField() const& { 1922 return __fbthrift_field_MyStringField; 1923 } 1924 1925 ::std::string get_MyStringField() && { 1926 return std::move(__fbthrift_field_MyStringField); 1927 } 1928 1929 template <typename T_MyStruct_MyStringField_struct_setter = ::std::string> 1930 [[deprecated("Use `FOO.MyStringField_ref() = BAR;` instead of `FOO.set_MyStringField(BAR);`")]] 1931 ::std::string& set_MyStringField(T_MyStruct_MyStringField_struct_setter&& MyStringField_) { 1932 MyStringField_ref() = std::forward<T_MyStruct_MyStringField_struct_setter>(MyStringField_); 1933 return __fbthrift_field_MyStringField; 1934 } 1935 1936 const ::std::string& get_MyStringField2() const& { 1937 return __fbthrift_field_MyStringField2; 1938 } 1939 1940 ::std::string get_MyStringField2() && { 1941 return std::move(__fbthrift_field_MyStringField2); 1942 } 1943 1944 template <typename T_MyStruct_MyStringField2_struct_setter = ::std::string> 1945 [[deprecated("Use `FOO.MyStringField2_ref() = BAR;` instead of `FOO.set_MyStringField2(BAR);`")]] 1946 ::std::string& set_MyStringField2(T_MyStruct_MyStringField2_struct_setter&& MyStringField2_) { 1947 MyStringField2_ref() = std::forward<T_MyStruct_MyStringField2_struct_setter>(MyStringField2_); 1948 return __fbthrift_field_MyStringField2; 1949 } 1950 1951 const ::std::string& get_MyBinaryField() const& { 1952 return __fbthrift_field_MyBinaryField; 1953 } 1954 1955 ::std::string get_MyBinaryField() && { 1956 return std::move(__fbthrift_field_MyBinaryField); 1957 } 1958 1959 template <typename T_MyStruct_MyBinaryField_struct_setter = ::std::string> 1960 [[deprecated("Use `FOO.MyBinaryField_ref() = BAR;` instead of `FOO.set_MyBinaryField(BAR);`")]] 1961 ::std::string& set_MyBinaryField(T_MyStruct_MyBinaryField_struct_setter&& MyBinaryField_) { 1962 MyBinaryField_ref() = std::forward<T_MyStruct_MyBinaryField_struct_setter>(MyBinaryField_); 1963 return __fbthrift_field_MyBinaryField; 1964 } 1965 1966 const ::std::string* get_MyBinaryField2() const& { 1967 return MyBinaryField2_ref() ? std::addressof(__fbthrift_field_MyBinaryField2) : nullptr; 1968 } 1969 1970 ::std::string* get_MyBinaryField2() & { 1971 return MyBinaryField2_ref() ? std::addressof(__fbthrift_field_MyBinaryField2) : nullptr; 1972 } 1973 ::std::string* get_MyBinaryField2() && = delete; 1974 1975 template <typename T_MyStruct_MyBinaryField2_struct_setter = ::std::string> 1976 [[deprecated("Use `FOO.MyBinaryField2_ref() = BAR;` instead of `FOO.set_MyBinaryField2(BAR);`")]] 1977 ::std::string& set_MyBinaryField2(T_MyStruct_MyBinaryField2_struct_setter&& MyBinaryField2_) { 1978 MyBinaryField2_ref() = std::forward<T_MyStruct_MyBinaryField2_struct_setter>(MyBinaryField2_); 1979 return __fbthrift_field_MyBinaryField2; 1980 } 1981 1982 const ::std::string& get_MyBinaryField3() const& { 1983 return MyBinaryField3; 1984 } 1985 1986 ::std::string get_MyBinaryField3() && { 1987 return std::move(MyBinaryField3); 1988 } 1989 1990 template <typename T_MyStruct_MyBinaryField3_struct_setter = ::std::string> 1991 [[deprecated("Use `FOO.MyBinaryField3_ref() = BAR;` instead of `FOO.set_MyBinaryField3(BAR);`")]] 1992 ::std::string& set_MyBinaryField3(T_MyStruct_MyBinaryField3_struct_setter&& MyBinaryField3_) { 1993 MyBinaryField3_ref() = std::forward<T_MyStruct_MyBinaryField3_struct_setter>(MyBinaryField3_); 1994 return MyBinaryField3; 1995 } 1996 const ::std::vector<::std::string>& get_MyBinaryListField4() const&; 1997 ::std::vector<::std::string> get_MyBinaryListField4() &&; 1998 1999 template <typename T_MyStruct_MyBinaryListField4_struct_setter = ::std::vector<::std::string>> 2000 [[deprecated("Use `FOO.MyBinaryListField4_ref() = BAR;` instead of `FOO.set_MyBinaryListField4(BAR);`")]] 2001 ::std::vector<::std::string>& set_MyBinaryListField4(T_MyStruct_MyBinaryListField4_struct_setter&& MyBinaryListField4_) { 2002 MyBinaryListField4_ref() = std::forward<T_MyStruct_MyBinaryListField4_struct_setter>(MyBinaryListField4_); 2003 return __fbthrift_field_MyBinaryListField4; 2004 } 2005 const ::std::map<::some::valid::ns::MyEnumA, ::std::string>& get_MyMapEnumAndInt() const&; 2006 ::std::map<::some::valid::ns::MyEnumA, ::std::string> get_MyMapEnumAndInt() &&; 2007 2008 template <typename T_MyStruct_MyMapEnumAndInt_struct_setter = ::std::map<::some::valid::ns::MyEnumA, ::std::string>> 2009 [[deprecated("Use `FOO.MyMapEnumAndInt_ref() = BAR;` instead of `FOO.set_MyMapEnumAndInt(BAR);`")]] 2010 ::std::map<::some::valid::ns::MyEnumA, ::std::string>& set_MyMapEnumAndInt(T_MyStruct_MyMapEnumAndInt_struct_setter&& MyMapEnumAndInt_) { 2011 MyMapEnumAndInt_ref() = std::forward<T_MyStruct_MyMapEnumAndInt_struct_setter>(MyMapEnumAndInt_); 2012 return __fbthrift_field_MyMapEnumAndInt; 2013 } 2014 2015 template <class Protocol_> 2016 uint32_t read(Protocol_* iprot); 2017 template <class Protocol_> 2018 uint32_t serializedSize(Protocol_ const* prot_) const; 2019 template <class Protocol_> 2020 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 2021 template <class Protocol_> 2022 uint32_t write(Protocol_* prot_) const; 2023 2024 private: 2025 template <class Protocol_> 2026 void readNoXfer(Protocol_* iprot); 2027 2028 friend class ::apache::thrift::Cpp2Ops<MyStruct>; 2029 friend void swap(MyStruct& a, MyStruct& b); 2030 }; 2031 2032 template <class Protocol_> 2033 uint32_t MyStruct::read(Protocol_* iprot) { 2034 auto _xferStart = iprot->getCursorPosition(); 2035 readNoXfer(iprot); 2036 return iprot->getCursorPosition() - _xferStart; 2037 } 2038 2039 }}} // some::valid::ns 2040 namespace some { namespace valid { namespace ns { 2041 class SimpleUnion { 2042 private: 2043 friend struct ::apache::thrift::detail::st::struct_private_access; 2044 2045 // used by a static_assert in the corresponding source 2046 static constexpr bool __fbthrift_cpp2_gen_json = true; 2047 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 2048 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 2049 2050 void __fbthrift_clear(); 2051 2052 public: 2053 using __fbthrift_cpp2_type = SimpleUnion; 2054 static constexpr bool __fbthrift_cpp2_is_union = 2055 true; 2056 2057 2058 public: 2059 enum Type : int { 2060 __EMPTY__ = 0, 2061 intValue = 7, 2062 stringValue = 2, 2063 } ; 2064 2065 SimpleUnion() 2066 : type_(Type::__EMPTY__) {} 2067 2068 SimpleUnion(SimpleUnion&& rhs) noexcept 2069 : type_(Type::__EMPTY__) { 2070 if (this == &rhs) { return; } 2071 if (rhs.type_ == Type::__EMPTY__) { return; } 2072 switch (rhs.type_) { 2073 case Type::intValue: 2074 { 2075 set_intValue(std::move(rhs.value_.intValue)); 2076 break; 2077 } 2078 case Type::stringValue: 2079 { 2080 set_stringValue(std::move(rhs.value_.stringValue)); 2081 break; 2082 } 2083 default: 2084 { 2085 assert(false); 2086 break; 2087 } 2088 } 2089 apache::thrift::clear(rhs); 2090 } 2091 2092 SimpleUnion(const SimpleUnion& rhs) 2093 : type_(Type::__EMPTY__) { 2094 if (this == &rhs) { return; } 2095 if (rhs.type_ == Type::__EMPTY__) { return; } 2096 switch (rhs.type_) { 2097 case Type::intValue: 2098 { 2099 set_intValue(rhs.value_.intValue); 2100 break; 2101 } 2102 case Type::stringValue: 2103 { 2104 set_stringValue(rhs.value_.stringValue); 2105 break; 2106 } 2107 default: 2108 { 2109 assert(false); 2110 break; 2111 } 2112 } 2113 } 2114 2115 SimpleUnion& operator=(SimpleUnion&& rhs) noexcept { 2116 if (this == &rhs) { return *this; } 2117 __fbthrift_clear(); 2118 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2119 switch (rhs.type_) { 2120 case Type::intValue: 2121 { 2122 set_intValue(std::move(rhs.value_.intValue)); 2123 break; 2124 } 2125 case Type::stringValue: 2126 { 2127 set_stringValue(std::move(rhs.value_.stringValue)); 2128 break; 2129 } 2130 default: 2131 { 2132 assert(false); 2133 break; 2134 } 2135 } 2136 apache::thrift::clear(rhs); 2137 return *this; 2138 } 2139 2140 SimpleUnion& operator=(const SimpleUnion& rhs) { 2141 if (this == &rhs) { return *this; } 2142 __fbthrift_clear(); 2143 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2144 switch (rhs.type_) { 2145 case Type::intValue: 2146 { 2147 set_intValue(rhs.value_.intValue); 2148 break; 2149 } 2150 case Type::stringValue: 2151 { 2152 set_stringValue(rhs.value_.stringValue); 2153 break; 2154 } 2155 default: 2156 { 2157 assert(false); 2158 break; 2159 } 2160 } 2161 return *this; 2162 } 2163 2164 virtual ~SimpleUnion() { 2165 apache::thrift::clear(*this); 2166 } 2167 2168 union storage_type { 2169 ::std::int64_t intValue; 2170 ::std::string stringValue; 2171 2172 storage_type() {} 2173 ~storage_type() {} 2174 } ; 2175 2176 bool operator==(const SimpleUnion&) const; 2177 bool operator<(const SimpleUnion&) const; 2178 2179 ::std::int64_t& set_intValue(::std::int64_t t = ::std::int64_t()) { 2180 __fbthrift_clear(); 2181 type_ = Type::intValue; 2182 ::new (std::addressof(value_.intValue)) ::std::int64_t(t); 2183 return value_.intValue; 2184 } 2185 2186 ::std::string& set_stringValue(::std::string const &t) { 2187 __fbthrift_clear(); 2188 type_ = Type::stringValue; 2189 ::new (std::addressof(value_.stringValue)) ::std::string(t); 2190 return value_.stringValue; 2191 } 2192 2193 ::std::string& set_stringValue(::std::string&& t) { 2194 __fbthrift_clear(); 2195 type_ = Type::stringValue; 2196 ::new (std::addressof(value_.stringValue)) ::std::string(std::move(t)); 2197 return value_.stringValue; 2198 } 2199 2200 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_stringValue(T&&... t) { 2201 __fbthrift_clear(); 2202 type_ = Type::stringValue; 2203 ::new (std::addressof(value_.stringValue)) ::std::string(std::forward<T>(t)...); 2204 return value_.stringValue; 2205 } 2206 2207 ::std::int64_t const& get_intValue() const { 2208 if (type_ != Type::intValue) { 2209 ::apache::thrift::detail::throw_on_bad_field_access(); 2210 } 2211 return value_.intValue; 2212 } 2213 2214 ::std::string const& get_stringValue() const { 2215 if (type_ != Type::stringValue) { 2216 ::apache::thrift::detail::throw_on_bad_field_access(); 2217 } 2218 return value_.stringValue; 2219 } 2220 2221 ::std::int64_t& mutable_intValue() { 2222 assert(type_ == Type::intValue); 2223 return value_.intValue; 2224 } 2225 2226 ::std::string& mutable_stringValue() { 2227 assert(type_ == Type::stringValue); 2228 return value_.stringValue; 2229 } 2230 2231 ::std::int64_t move_intValue() { 2232 assert(type_ == Type::intValue); 2233 return std::move(value_.intValue); 2234 } 2235 2236 ::std::string move_stringValue() { 2237 assert(type_ == Type::stringValue); 2238 return std::move(value_.stringValue); 2239 } 2240 2241 template <typename..., typename T = ::std::int64_t> 2242 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> intValue_ref() const& { 2243 return {value_.intValue, type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2244 } 2245 2246 template <typename..., typename T = ::std::int64_t> 2247 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> intValue_ref() const&& { 2248 return {std::move(value_.intValue), type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2249 } 2250 2251 template <typename..., typename T = ::std::int64_t> 2252 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> intValue_ref() & { 2253 return {value_.intValue, type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2254 } 2255 2256 template <typename..., typename T = ::std::int64_t> 2257 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> intValue_ref() && { 2258 return {std::move(value_.intValue), type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2259 } 2260 template <typename..., typename T = ::std::string> 2261 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> stringValue_ref() const& { 2262 return {value_.stringValue, type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2263 } 2264 2265 template <typename..., typename T = ::std::string> 2266 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> stringValue_ref() const&& { 2267 return {std::move(value_.stringValue), type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2268 } 2269 2270 template <typename..., typename T = ::std::string> 2271 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> stringValue_ref() & { 2272 return {value_.stringValue, type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2273 } 2274 2275 template <typename..., typename T = ::std::string> 2276 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> stringValue_ref() && { 2277 return {std::move(value_.stringValue), type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2278 } 2279 Type getType() const { return static_cast<Type>(type_); } 2280 2281 template <class Protocol_> 2282 uint32_t read(Protocol_* iprot); 2283 template <class Protocol_> 2284 uint32_t serializedSize(Protocol_ const* prot_) const; 2285 template <class Protocol_> 2286 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 2287 template <class Protocol_> 2288 uint32_t write(Protocol_* prot_) const; 2289 protected: 2290 template <class T> 2291 void destruct(T &val) { 2292 (&val)->~T(); 2293 } 2294 2295 storage_type value_; 2296 std::underlying_type_t<Type> type_; 2297 2298 private: 2299 template <class Protocol_> 2300 void readNoXfer(Protocol_* iprot); 2301 2302 friend class ::apache::thrift::Cpp2Ops<SimpleUnion>; 2303 friend void swap(SimpleUnion& a, SimpleUnion& b); 2304 }; 2305 2306 template <class Protocol_> 2307 uint32_t SimpleUnion::read(Protocol_* iprot) { 2308 auto _xferStart = iprot->getCursorPosition(); 2309 readNoXfer(iprot); 2310 return iprot->getCursorPosition() - _xferStart; 2311 } 2312 2313 }}} // some::valid::ns 2314 namespace some { namespace valid { namespace ns { 2315 class ComplexUnion final { 2316 private: 2317 friend struct ::apache::thrift::detail::st::struct_private_access; 2318 2319 // used by a static_assert in the corresponding source 2320 static constexpr bool __fbthrift_cpp2_gen_json = true; 2321 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 2322 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 2323 2324 void __fbthrift_clear(); 2325 2326 public: 2327 using __fbthrift_cpp2_type = ComplexUnion; 2328 static constexpr bool __fbthrift_cpp2_is_union = 2329 true; 2330 2331 2332 public: 2333 enum Type : int { 2334 __EMPTY__ = 0, 2335 intValue = 1, 2336 opt_intValue = 201, 2337 stringValue = 3, 2338 opt_stringValue = 203, 2339 intValue2 = 4, 2340 intValue3 = 6, 2341 doubelValue = 7, 2342 boolValue = 8, 2343 union_list = 9, 2344 union_set = 10, 2345 union_map = 11, 2346 opt_union_map = 211, 2347 enum_field = 12, 2348 enum_container = 13, 2349 a_struct = 14, 2350 a_set_struct = 15, 2351 a_union = 16, 2352 opt_a_union = 216, 2353 a_union_list = 17, 2354 a_union_typedef = 18, 2355 a_union_typedef_list = 19, 2356 MyBinaryField = 20, 2357 MyBinaryField2 = 21, 2358 MyBinaryListField4 = 23, 2359 ref_field = 24, 2360 ref_field2 = 25, 2361 excp_field = 26, 2362 MyCustomField = 27, 2363 } ; 2364 2365 ComplexUnion() 2366 : type_(Type::__EMPTY__) {} 2367 2368 ComplexUnion(ComplexUnion&& rhs) noexcept 2369 : type_(Type::__EMPTY__) { 2370 if (this == &rhs) { return; } 2371 if (rhs.type_ == Type::__EMPTY__) { return; } 2372 switch (rhs.type_) { 2373 case Type::intValue: 2374 { 2375 set_intValue(std::move(rhs.value_.intValue)); 2376 break; 2377 } 2378 case Type::opt_intValue: 2379 { 2380 set_opt_intValue(std::move(rhs.value_.opt_intValue)); 2381 break; 2382 } 2383 case Type::stringValue: 2384 { 2385 set_stringValue(std::move(rhs.value_.stringValue)); 2386 break; 2387 } 2388 case Type::opt_stringValue: 2389 { 2390 set_opt_stringValue(std::move(rhs.value_.opt_stringValue)); 2391 break; 2392 } 2393 case Type::intValue2: 2394 { 2395 set_intValue2(std::move(rhs.value_.intValue2)); 2396 break; 2397 } 2398 case Type::intValue3: 2399 { 2400 set_intValue3(std::move(rhs.value_.intValue3)); 2401 break; 2402 } 2403 case Type::doubelValue: 2404 { 2405 set_doubelValue(std::move(rhs.value_.doubelValue)); 2406 break; 2407 } 2408 case Type::boolValue: 2409 { 2410 set_boolValue(std::move(rhs.value_.boolValue)); 2411 break; 2412 } 2413 case Type::union_list: 2414 { 2415 set_union_list(std::move(rhs.value_.union_list)); 2416 break; 2417 } 2418 case Type::union_set: 2419 { 2420 set_union_set(std::move(rhs.value_.union_set)); 2421 break; 2422 } 2423 case Type::union_map: 2424 { 2425 set_union_map(std::move(rhs.value_.union_map)); 2426 break; 2427 } 2428 case Type::opt_union_map: 2429 { 2430 set_opt_union_map(std::move(rhs.value_.opt_union_map)); 2431 break; 2432 } 2433 case Type::enum_field: 2434 { 2435 set_enum_field(std::move(rhs.value_.enum_field)); 2436 break; 2437 } 2438 case Type::enum_container: 2439 { 2440 set_enum_container(std::move(rhs.value_.enum_container)); 2441 break; 2442 } 2443 case Type::a_struct: 2444 { 2445 set_a_struct(std::move(rhs.value_.a_struct)); 2446 break; 2447 } 2448 case Type::a_set_struct: 2449 { 2450 set_a_set_struct(std::move(rhs.value_.a_set_struct)); 2451 break; 2452 } 2453 case Type::a_union: 2454 { 2455 set_a_union(std::move(rhs.value_.a_union)); 2456 break; 2457 } 2458 case Type::opt_a_union: 2459 { 2460 set_opt_a_union(std::move(rhs.value_.opt_a_union)); 2461 break; 2462 } 2463 case Type::a_union_list: 2464 { 2465 set_a_union_list(std::move(rhs.value_.a_union_list)); 2466 break; 2467 } 2468 case Type::a_union_typedef: 2469 { 2470 set_a_union_typedef(std::move(rhs.value_.a_union_typedef)); 2471 break; 2472 } 2473 case Type::a_union_typedef_list: 2474 { 2475 set_a_union_typedef_list(std::move(rhs.value_.a_union_typedef_list)); 2476 break; 2477 } 2478 case Type::MyBinaryField: 2479 { 2480 set_MyBinaryField(std::move(rhs.value_.MyBinaryField)); 2481 break; 2482 } 2483 case Type::MyBinaryField2: 2484 { 2485 set_MyBinaryField2(std::move(rhs.value_.MyBinaryField2)); 2486 break; 2487 } 2488 case Type::MyBinaryListField4: 2489 { 2490 set_MyBinaryListField4(std::move(rhs.value_.MyBinaryListField4)); 2491 break; 2492 } 2493 case Type::ref_field: 2494 { 2495 set_ref_field(std::move(*rhs.value_.ref_field)); 2496 break; 2497 } 2498 case Type::ref_field2: 2499 { 2500 set_ref_field2(std::move(*rhs.value_.ref_field2)); 2501 break; 2502 } 2503 case Type::excp_field: 2504 { 2505 set_excp_field(std::move(rhs.value_.excp_field)); 2506 break; 2507 } 2508 case Type::MyCustomField: 2509 { 2510 set_MyCustomField(std::move(rhs.value_.MyCustomField)); 2511 break; 2512 } 2513 default: 2514 { 2515 assert(false); 2516 break; 2517 } 2518 } 2519 apache::thrift::clear(rhs); 2520 } 2521 2522 ComplexUnion(const ComplexUnion& rhs) 2523 : type_(Type::__EMPTY__) { 2524 if (this == &rhs) { return; } 2525 if (rhs.type_ == Type::__EMPTY__) { return; } 2526 switch (rhs.type_) { 2527 case Type::intValue: 2528 { 2529 set_intValue(rhs.value_.intValue); 2530 break; 2531 } 2532 case Type::opt_intValue: 2533 { 2534 set_opt_intValue(rhs.value_.opt_intValue); 2535 break; 2536 } 2537 case Type::stringValue: 2538 { 2539 set_stringValue(rhs.value_.stringValue); 2540 break; 2541 } 2542 case Type::opt_stringValue: 2543 { 2544 set_opt_stringValue(rhs.value_.opt_stringValue); 2545 break; 2546 } 2547 case Type::intValue2: 2548 { 2549 set_intValue2(rhs.value_.intValue2); 2550 break; 2551 } 2552 case Type::intValue3: 2553 { 2554 set_intValue3(rhs.value_.intValue3); 2555 break; 2556 } 2557 case Type::doubelValue: 2558 { 2559 set_doubelValue(rhs.value_.doubelValue); 2560 break; 2561 } 2562 case Type::boolValue: 2563 { 2564 set_boolValue(rhs.value_.boolValue); 2565 break; 2566 } 2567 case Type::union_list: 2568 { 2569 set_union_list(rhs.value_.union_list); 2570 break; 2571 } 2572 case Type::union_set: 2573 { 2574 set_union_set(rhs.value_.union_set); 2575 break; 2576 } 2577 case Type::union_map: 2578 { 2579 set_union_map(rhs.value_.union_map); 2580 break; 2581 } 2582 case Type::opt_union_map: 2583 { 2584 set_opt_union_map(rhs.value_.opt_union_map); 2585 break; 2586 } 2587 case Type::enum_field: 2588 { 2589 set_enum_field(rhs.value_.enum_field); 2590 break; 2591 } 2592 case Type::enum_container: 2593 { 2594 set_enum_container(rhs.value_.enum_container); 2595 break; 2596 } 2597 case Type::a_struct: 2598 { 2599 set_a_struct(rhs.value_.a_struct); 2600 break; 2601 } 2602 case Type::a_set_struct: 2603 { 2604 set_a_set_struct(rhs.value_.a_set_struct); 2605 break; 2606 } 2607 case Type::a_union: 2608 { 2609 set_a_union(rhs.value_.a_union); 2610 break; 2611 } 2612 case Type::opt_a_union: 2613 { 2614 set_opt_a_union(rhs.value_.opt_a_union); 2615 break; 2616 } 2617 case Type::a_union_list: 2618 { 2619 set_a_union_list(rhs.value_.a_union_list); 2620 break; 2621 } 2622 case Type::a_union_typedef: 2623 { 2624 set_a_union_typedef(rhs.value_.a_union_typedef); 2625 break; 2626 } 2627 case Type::a_union_typedef_list: 2628 { 2629 set_a_union_typedef_list(rhs.value_.a_union_typedef_list); 2630 break; 2631 } 2632 case Type::MyBinaryField: 2633 { 2634 set_MyBinaryField(rhs.value_.MyBinaryField); 2635 break; 2636 } 2637 case Type::MyBinaryField2: 2638 { 2639 set_MyBinaryField2(rhs.value_.MyBinaryField2); 2640 break; 2641 } 2642 case Type::MyBinaryListField4: 2643 { 2644 set_MyBinaryListField4(rhs.value_.MyBinaryListField4); 2645 break; 2646 } 2647 case Type::ref_field: 2648 { 2649 set_ref_field(*rhs.value_.ref_field); 2650 break; 2651 } 2652 case Type::ref_field2: 2653 { 2654 set_ref_field2(*rhs.value_.ref_field2); 2655 break; 2656 } 2657 case Type::excp_field: 2658 { 2659 set_excp_field(rhs.value_.excp_field); 2660 break; 2661 } 2662 case Type::MyCustomField: 2663 { 2664 set_MyCustomField(rhs.value_.MyCustomField); 2665 break; 2666 } 2667 default: 2668 { 2669 assert(false); 2670 break; 2671 } 2672 } 2673 } 2674 2675 ComplexUnion& operator=(ComplexUnion&& rhs) noexcept { 2676 if (this == &rhs) { return *this; } 2677 __fbthrift_clear(); 2678 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2679 switch (rhs.type_) { 2680 case Type::intValue: 2681 { 2682 set_intValue(std::move(rhs.value_.intValue)); 2683 break; 2684 } 2685 case Type::opt_intValue: 2686 { 2687 set_opt_intValue(std::move(rhs.value_.opt_intValue)); 2688 break; 2689 } 2690 case Type::stringValue: 2691 { 2692 set_stringValue(std::move(rhs.value_.stringValue)); 2693 break; 2694 } 2695 case Type::opt_stringValue: 2696 { 2697 set_opt_stringValue(std::move(rhs.value_.opt_stringValue)); 2698 break; 2699 } 2700 case Type::intValue2: 2701 { 2702 set_intValue2(std::move(rhs.value_.intValue2)); 2703 break; 2704 } 2705 case Type::intValue3: 2706 { 2707 set_intValue3(std::move(rhs.value_.intValue3)); 2708 break; 2709 } 2710 case Type::doubelValue: 2711 { 2712 set_doubelValue(std::move(rhs.value_.doubelValue)); 2713 break; 2714 } 2715 case Type::boolValue: 2716 { 2717 set_boolValue(std::move(rhs.value_.boolValue)); 2718 break; 2719 } 2720 case Type::union_list: 2721 { 2722 set_union_list(std::move(rhs.value_.union_list)); 2723 break; 2724 } 2725 case Type::union_set: 2726 { 2727 set_union_set(std::move(rhs.value_.union_set)); 2728 break; 2729 } 2730 case Type::union_map: 2731 { 2732 set_union_map(std::move(rhs.value_.union_map)); 2733 break; 2734 } 2735 case Type::opt_union_map: 2736 { 2737 set_opt_union_map(std::move(rhs.value_.opt_union_map)); 2738 break; 2739 } 2740 case Type::enum_field: 2741 { 2742 set_enum_field(std::move(rhs.value_.enum_field)); 2743 break; 2744 } 2745 case Type::enum_container: 2746 { 2747 set_enum_container(std::move(rhs.value_.enum_container)); 2748 break; 2749 } 2750 case Type::a_struct: 2751 { 2752 set_a_struct(std::move(rhs.value_.a_struct)); 2753 break; 2754 } 2755 case Type::a_set_struct: 2756 { 2757 set_a_set_struct(std::move(rhs.value_.a_set_struct)); 2758 break; 2759 } 2760 case Type::a_union: 2761 { 2762 set_a_union(std::move(rhs.value_.a_union)); 2763 break; 2764 } 2765 case Type::opt_a_union: 2766 { 2767 set_opt_a_union(std::move(rhs.value_.opt_a_union)); 2768 break; 2769 } 2770 case Type::a_union_list: 2771 { 2772 set_a_union_list(std::move(rhs.value_.a_union_list)); 2773 break; 2774 } 2775 case Type::a_union_typedef: 2776 { 2777 set_a_union_typedef(std::move(rhs.value_.a_union_typedef)); 2778 break; 2779 } 2780 case Type::a_union_typedef_list: 2781 { 2782 set_a_union_typedef_list(std::move(rhs.value_.a_union_typedef_list)); 2783 break; 2784 } 2785 case Type::MyBinaryField: 2786 { 2787 set_MyBinaryField(std::move(rhs.value_.MyBinaryField)); 2788 break; 2789 } 2790 case Type::MyBinaryField2: 2791 { 2792 set_MyBinaryField2(std::move(rhs.value_.MyBinaryField2)); 2793 break; 2794 } 2795 case Type::MyBinaryListField4: 2796 { 2797 set_MyBinaryListField4(std::move(rhs.value_.MyBinaryListField4)); 2798 break; 2799 } 2800 case Type::ref_field: 2801 { 2802 set_ref_field(std::move(*rhs.value_.ref_field)); 2803 break; 2804 } 2805 case Type::ref_field2: 2806 { 2807 set_ref_field2(std::move(*rhs.value_.ref_field2)); 2808 break; 2809 } 2810 case Type::excp_field: 2811 { 2812 set_excp_field(std::move(rhs.value_.excp_field)); 2813 break; 2814 } 2815 case Type::MyCustomField: 2816 { 2817 set_MyCustomField(std::move(rhs.value_.MyCustomField)); 2818 break; 2819 } 2820 default: 2821 { 2822 assert(false); 2823 break; 2824 } 2825 } 2826 apache::thrift::clear(rhs); 2827 return *this; 2828 } 2829 2830 ComplexUnion& operator=(const ComplexUnion& rhs) { 2831 if (this == &rhs) { return *this; } 2832 __fbthrift_clear(); 2833 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2834 switch (rhs.type_) { 2835 case Type::intValue: 2836 { 2837 set_intValue(rhs.value_.intValue); 2838 break; 2839 } 2840 case Type::opt_intValue: 2841 { 2842 set_opt_intValue(rhs.value_.opt_intValue); 2843 break; 2844 } 2845 case Type::stringValue: 2846 { 2847 set_stringValue(rhs.value_.stringValue); 2848 break; 2849 } 2850 case Type::opt_stringValue: 2851 { 2852 set_opt_stringValue(rhs.value_.opt_stringValue); 2853 break; 2854 } 2855 case Type::intValue2: 2856 { 2857 set_intValue2(rhs.value_.intValue2); 2858 break; 2859 } 2860 case Type::intValue3: 2861 { 2862 set_intValue3(rhs.value_.intValue3); 2863 break; 2864 } 2865 case Type::doubelValue: 2866 { 2867 set_doubelValue(rhs.value_.doubelValue); 2868 break; 2869 } 2870 case Type::boolValue: 2871 { 2872 set_boolValue(rhs.value_.boolValue); 2873 break; 2874 } 2875 case Type::union_list: 2876 { 2877 set_union_list(rhs.value_.union_list); 2878 break; 2879 } 2880 case Type::union_set: 2881 { 2882 set_union_set(rhs.value_.union_set); 2883 break; 2884 } 2885 case Type::union_map: 2886 { 2887 set_union_map(rhs.value_.union_map); 2888 break; 2889 } 2890 case Type::opt_union_map: 2891 { 2892 set_opt_union_map(rhs.value_.opt_union_map); 2893 break; 2894 } 2895 case Type::enum_field: 2896 { 2897 set_enum_field(rhs.value_.enum_field); 2898 break; 2899 } 2900 case Type::enum_container: 2901 { 2902 set_enum_container(rhs.value_.enum_container); 2903 break; 2904 } 2905 case Type::a_struct: 2906 { 2907 set_a_struct(rhs.value_.a_struct); 2908 break; 2909 } 2910 case Type::a_set_struct: 2911 { 2912 set_a_set_struct(rhs.value_.a_set_struct); 2913 break; 2914 } 2915 case Type::a_union: 2916 { 2917 set_a_union(rhs.value_.a_union); 2918 break; 2919 } 2920 case Type::opt_a_union: 2921 { 2922 set_opt_a_union(rhs.value_.opt_a_union); 2923 break; 2924 } 2925 case Type::a_union_list: 2926 { 2927 set_a_union_list(rhs.value_.a_union_list); 2928 break; 2929 } 2930 case Type::a_union_typedef: 2931 { 2932 set_a_union_typedef(rhs.value_.a_union_typedef); 2933 break; 2934 } 2935 case Type::a_union_typedef_list: 2936 { 2937 set_a_union_typedef_list(rhs.value_.a_union_typedef_list); 2938 break; 2939 } 2940 case Type::MyBinaryField: 2941 { 2942 set_MyBinaryField(rhs.value_.MyBinaryField); 2943 break; 2944 } 2945 case Type::MyBinaryField2: 2946 { 2947 set_MyBinaryField2(rhs.value_.MyBinaryField2); 2948 break; 2949 } 2950 case Type::MyBinaryListField4: 2951 { 2952 set_MyBinaryListField4(rhs.value_.MyBinaryListField4); 2953 break; 2954 } 2955 case Type::ref_field: 2956 { 2957 set_ref_field(*rhs.value_.ref_field); 2958 break; 2959 } 2960 case Type::ref_field2: 2961 { 2962 set_ref_field2(*rhs.value_.ref_field2); 2963 break; 2964 } 2965 case Type::excp_field: 2966 { 2967 set_excp_field(rhs.value_.excp_field); 2968 break; 2969 } 2970 case Type::MyCustomField: 2971 { 2972 set_MyCustomField(rhs.value_.MyCustomField); 2973 break; 2974 } 2975 default: 2976 { 2977 assert(false); 2978 break; 2979 } 2980 } 2981 return *this; 2982 } 2983 2984 ~ComplexUnion() { 2985 apache::thrift::clear(*this); 2986 } 2987 union storage_type { 2988 ::std::int64_t intValue; 2989 ::std::int64_t opt_intValue; 2990 ::std::string stringValue; 2991 ::std::string opt_stringValue; 2992 ::std::int16_t intValue2; 2993 ::std::int32_t intValue3; 2994 double doubelValue; 2995 bool boolValue; 2996 ::std::vector<::std::int32_t> union_list; 2997 ::std::set<::std::int64_t> union_set; 2998 ::std::map<::std::string, ::std::int32_t> union_map; 2999 ::std::map<::std::string, ::std::int32_t> opt_union_map; 3000 ::some::valid::ns::MyEnumA enum_field; 3001 ::std::vector<::some::valid::ns::MyEnumA> enum_container; 3002 ::some::valid::ns::MyStruct a_struct; 3003 ::std::set<::some::valid::ns::MyStruct> a_set_struct; 3004 ::some::valid::ns::SimpleUnion a_union; 3005 ::some::valid::ns::SimpleUnion opt_a_union; 3006 ::std::vector<::some::valid::ns::SimpleUnion> a_union_list; 3007 ::some::valid::ns::unionTypeDef a_union_typedef; 3008 ::std::vector<::some::valid::ns::unionTypeDef> a_union_typedef_list; 3009 ::std::string MyBinaryField; 3010 ::std::string MyBinaryField2; 3011 ::std::vector<::std::string> MyBinaryListField4; 3012 ::std::unique_ptr<::some::valid::ns::MyStruct> ref_field; 3013 ::std::shared_ptr<const ::some::valid::ns::MyStruct> ref_field2; 3014 ::some::valid::ns::AnException excp_field; 3015 ::some::valid::ns::CustomProtocolType MyCustomField; 3016 3017 storage_type() {} 3018 ~storage_type() {} 3019 } ; 3020 3021 bool operator==(const ComplexUnion&) const; 3022 bool operator<(const ComplexUnion&) const; 3023 3024 ::std::int64_t& set_intValue(::std::int64_t t = ::std::int64_t()) { 3025 __fbthrift_clear(); 3026 type_ = Type::intValue; 3027 ::new (std::addressof(value_.intValue)) ::std::int64_t(t); 3028 return value_.intValue; 3029 } 3030 3031 ::std::int64_t& set_opt_intValue(::std::int64_t t = ::std::int64_t()) { 3032 __fbthrift_clear(); 3033 type_ = Type::opt_intValue; 3034 ::new (std::addressof(value_.opt_intValue)) ::std::int64_t(t); 3035 return value_.opt_intValue; 3036 } 3037 3038 ::std::string& set_stringValue(::std::string const &t) { 3039 __fbthrift_clear(); 3040 type_ = Type::stringValue; 3041 ::new (std::addressof(value_.stringValue)) ::std::string(t); 3042 return value_.stringValue; 3043 } 3044 3045 ::std::string& set_stringValue(::std::string&& t) { 3046 __fbthrift_clear(); 3047 type_ = Type::stringValue; 3048 ::new (std::addressof(value_.stringValue)) ::std::string(std::move(t)); 3049 return value_.stringValue; 3050 } 3051 3052 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_stringValue(T&&... t) { 3053 __fbthrift_clear(); 3054 type_ = Type::stringValue; 3055 ::new (std::addressof(value_.stringValue)) ::std::string(std::forward<T>(t)...); 3056 return value_.stringValue; 3057 } 3058 3059 ::std::string& set_opt_stringValue(::std::string const &t) { 3060 __fbthrift_clear(); 3061 type_ = Type::opt_stringValue; 3062 ::new (std::addressof(value_.opt_stringValue)) ::std::string(t); 3063 return value_.opt_stringValue; 3064 } 3065 3066 ::std::string& set_opt_stringValue(::std::string&& t) { 3067 __fbthrift_clear(); 3068 type_ = Type::opt_stringValue; 3069 ::new (std::addressof(value_.opt_stringValue)) ::std::string(std::move(t)); 3070 return value_.opt_stringValue; 3071 } 3072 3073 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_opt_stringValue(T&&... t) { 3074 __fbthrift_clear(); 3075 type_ = Type::opt_stringValue; 3076 ::new (std::addressof(value_.opt_stringValue)) ::std::string(std::forward<T>(t)...); 3077 return value_.opt_stringValue; 3078 } 3079 3080 ::std::int16_t& set_intValue2(::std::int16_t t = ::std::int16_t()) { 3081 __fbthrift_clear(); 3082 type_ = Type::intValue2; 3083 ::new (std::addressof(value_.intValue2)) ::std::int16_t(t); 3084 return value_.intValue2; 3085 } 3086 3087 ::std::int32_t& set_intValue3(::std::int32_t t = ::std::int32_t()) { 3088 __fbthrift_clear(); 3089 type_ = Type::intValue3; 3090 ::new (std::addressof(value_.intValue3)) ::std::int32_t(t); 3091 return value_.intValue3; 3092 } 3093 3094 double& set_doubelValue(double t = double()) { 3095 __fbthrift_clear(); 3096 type_ = Type::doubelValue; 3097 ::new (std::addressof(value_.doubelValue)) double(t); 3098 return value_.doubelValue; 3099 } 3100 3101 bool& set_boolValue(bool t = bool()) { 3102 __fbthrift_clear(); 3103 type_ = Type::boolValue; 3104 ::new (std::addressof(value_.boolValue)) bool(t); 3105 return value_.boolValue; 3106 } 3107 3108 ::std::vector<::std::int32_t>& set_union_list(::std::vector<::std::int32_t> const &t) { 3109 __fbthrift_clear(); 3110 type_ = Type::union_list; 3111 ::new (std::addressof(value_.union_list)) ::std::vector<::std::int32_t>(t); 3112 return value_.union_list; 3113 } 3114 3115 ::std::vector<::std::int32_t>& set_union_list(::std::vector<::std::int32_t>&& t) { 3116 __fbthrift_clear(); 3117 type_ = Type::union_list; 3118 ::new (std::addressof(value_.union_list)) ::std::vector<::std::int32_t>(std::move(t)); 3119 return value_.union_list; 3120 } 3121 3122 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::vector<::std::int32_t>, T...>> ::std::vector<::std::int32_t>& set_union_list(T&&... t) { 3123 __fbthrift_clear(); 3124 type_ = Type::union_list; 3125 ::new (std::addressof(value_.union_list)) ::std::vector<::std::int32_t>(std::forward<T>(t)...); 3126 return value_.union_list; 3127 } 3128 3129 ::std::set<::std::int64_t>& set_union_set(::std::set<::std::int64_t> const &t) { 3130 __fbthrift_clear(); 3131 type_ = Type::union_set; 3132 ::new (std::addressof(value_.union_set)) ::std::set<::std::int64_t>(t); 3133 return value_.union_set; 3134 } 3135 3136 ::std::set<::std::int64_t>& set_union_set(::std::set<::std::int64_t>&& t) { 3137 __fbthrift_clear(); 3138 type_ = Type::union_set; 3139 ::new (std::addressof(value_.union_set)) ::std::set<::std::int64_t>(std::move(t)); 3140 return value_.union_set; 3141 } 3142 3143 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::set<::std::int64_t>, T...>> ::std::set<::std::int64_t>& set_union_set(T&&... t) { 3144 __fbthrift_clear(); 3145 type_ = Type::union_set; 3146 ::new (std::addressof(value_.union_set)) ::std::set<::std::int64_t>(std::forward<T>(t)...); 3147 return value_.union_set; 3148 } 3149 3150 ::std::map<::std::string, ::std::int32_t>& set_union_map(::std::map<::std::string, ::std::int32_t> const &t) { 3151 __fbthrift_clear(); 3152 type_ = Type::union_map; 3153 ::new (std::addressof(value_.union_map)) ::std::map<::std::string, ::std::int32_t>(t); 3154 return value_.union_map; 3155 } 3156 3157 ::std::map<::std::string, ::std::int32_t>& set_union_map(::std::map<::std::string, ::std::int32_t>&& t) { 3158 __fbthrift_clear(); 3159 type_ = Type::union_map; 3160 ::new (std::addressof(value_.union_map)) ::std::map<::std::string, ::std::int32_t>(std::move(t)); 3161 return value_.union_map; 3162 } 3163 3164 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::map<::std::string, ::std::int32_t>, T...>> ::std::map<::std::string, ::std::int32_t>& set_union_map(T&&... t) { 3165 __fbthrift_clear(); 3166 type_ = Type::union_map; 3167 ::new (std::addressof(value_.union_map)) ::std::map<::std::string, ::std::int32_t>(std::forward<T>(t)...); 3168 return value_.union_map; 3169 } 3170 3171 ::std::map<::std::string, ::std::int32_t>& set_opt_union_map(::std::map<::std::string, ::std::int32_t> const &t) { 3172 __fbthrift_clear(); 3173 type_ = Type::opt_union_map; 3174 ::new (std::addressof(value_.opt_union_map)) ::std::map<::std::string, ::std::int32_t>(t); 3175 return value_.opt_union_map; 3176 } 3177 3178 ::std::map<::std::string, ::std::int32_t>& set_opt_union_map(::std::map<::std::string, ::std::int32_t>&& t) { 3179 __fbthrift_clear(); 3180 type_ = Type::opt_union_map; 3181 ::new (std::addressof(value_.opt_union_map)) ::std::map<::std::string, ::std::int32_t>(std::move(t)); 3182 return value_.opt_union_map; 3183 } 3184 3185 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::map<::std::string, ::std::int32_t>, T...>> ::std::map<::std::string, ::std::int32_t>& set_opt_union_map(T&&... t) { 3186 __fbthrift_clear(); 3187 type_ = Type::opt_union_map; 3188 ::new (std::addressof(value_.opt_union_map)) ::std::map<::std::string, ::std::int32_t>(std::forward<T>(t)...); 3189 return value_.opt_union_map; 3190 } 3191 3192 ::some::valid::ns::MyEnumA& set_enum_field(::some::valid::ns::MyEnumA t = ::some::valid::ns::MyEnumA()) { 3193 __fbthrift_clear(); 3194 type_ = Type::enum_field; 3195 ::new (std::addressof(value_.enum_field)) ::some::valid::ns::MyEnumA(t); 3196 return value_.enum_field; 3197 } 3198 3199 ::std::vector<::some::valid::ns::MyEnumA>& set_enum_container(::std::vector<::some::valid::ns::MyEnumA> const &t) { 3200 __fbthrift_clear(); 3201 type_ = Type::enum_container; 3202 ::new (std::addressof(value_.enum_container)) ::std::vector<::some::valid::ns::MyEnumA>(t); 3203 return value_.enum_container; 3204 } 3205 3206 ::std::vector<::some::valid::ns::MyEnumA>& set_enum_container(::std::vector<::some::valid::ns::MyEnumA>&& t) { 3207 __fbthrift_clear(); 3208 type_ = Type::enum_container; 3209 ::new (std::addressof(value_.enum_container)) ::std::vector<::some::valid::ns::MyEnumA>(std::move(t)); 3210 return value_.enum_container; 3211 } 3212 3213 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::vector<::some::valid::ns::MyEnumA>, T...>> ::std::vector<::some::valid::ns::MyEnumA>& set_enum_container(T&&... t) { 3214 __fbthrift_clear(); 3215 type_ = Type::enum_container; 3216 ::new (std::addressof(value_.enum_container)) ::std::vector<::some::valid::ns::MyEnumA>(std::forward<T>(t)...); 3217 return value_.enum_container; 3218 } 3219 3220 ::some::valid::ns::MyStruct& set_a_struct(::some::valid::ns::MyStruct const &t) { 3221 __fbthrift_clear(); 3222 type_ = Type::a_struct; 3223 ::new (std::addressof(value_.a_struct)) ::some::valid::ns::MyStruct(t); 3224 return value_.a_struct; 3225 } 3226 3227 ::some::valid::ns::MyStruct& set_a_struct(::some::valid::ns::MyStruct&& t) { 3228 __fbthrift_clear(); 3229 type_ = Type::a_struct; 3230 ::new (std::addressof(value_.a_struct)) ::some::valid::ns::MyStruct(std::move(t)); 3231 return value_.a_struct; 3232 } 3233 3234 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::MyStruct, T...>> ::some::valid::ns::MyStruct& set_a_struct(T&&... t) { 3235 __fbthrift_clear(); 3236 type_ = Type::a_struct; 3237 ::new (std::addressof(value_.a_struct)) ::some::valid::ns::MyStruct(std::forward<T>(t)...); 3238 return value_.a_struct; 3239 } 3240 3241 ::std::set<::some::valid::ns::MyStruct>& set_a_set_struct(::std::set<::some::valid::ns::MyStruct> const &t) { 3242 __fbthrift_clear(); 3243 type_ = Type::a_set_struct; 3244 ::new (std::addressof(value_.a_set_struct)) ::std::set<::some::valid::ns::MyStruct>(t); 3245 return value_.a_set_struct; 3246 } 3247 3248 ::std::set<::some::valid::ns::MyStruct>& set_a_set_struct(::std::set<::some::valid::ns::MyStruct>&& t) { 3249 __fbthrift_clear(); 3250 type_ = Type::a_set_struct; 3251 ::new (std::addressof(value_.a_set_struct)) ::std::set<::some::valid::ns::MyStruct>(std::move(t)); 3252 return value_.a_set_struct; 3253 } 3254 3255 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::set<::some::valid::ns::MyStruct>, T...>> ::std::set<::some::valid::ns::MyStruct>& set_a_set_struct(T&&... t) { 3256 __fbthrift_clear(); 3257 type_ = Type::a_set_struct; 3258 ::new (std::addressof(value_.a_set_struct)) ::std::set<::some::valid::ns::MyStruct>(std::forward<T>(t)...); 3259 return value_.a_set_struct; 3260 } 3261 3262 ::some::valid::ns::SimpleUnion& set_a_union(::some::valid::ns::SimpleUnion const &t) { 3263 __fbthrift_clear(); 3264 type_ = Type::a_union; 3265 ::new (std::addressof(value_.a_union)) ::some::valid::ns::SimpleUnion(t); 3266 return value_.a_union; 3267 } 3268 3269 ::some::valid::ns::SimpleUnion& set_a_union(::some::valid::ns::SimpleUnion&& t) { 3270 __fbthrift_clear(); 3271 type_ = Type::a_union; 3272 ::new (std::addressof(value_.a_union)) ::some::valid::ns::SimpleUnion(std::move(t)); 3273 return value_.a_union; 3274 } 3275 3276 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::SimpleUnion, T...>> ::some::valid::ns::SimpleUnion& set_a_union(T&&... t) { 3277 __fbthrift_clear(); 3278 type_ = Type::a_union; 3279 ::new (std::addressof(value_.a_union)) ::some::valid::ns::SimpleUnion(std::forward<T>(t)...); 3280 return value_.a_union; 3281 } 3282 3283 ::some::valid::ns::SimpleUnion& set_opt_a_union(::some::valid::ns::SimpleUnion const &t) { 3284 __fbthrift_clear(); 3285 type_ = Type::opt_a_union; 3286 ::new (std::addressof(value_.opt_a_union)) ::some::valid::ns::SimpleUnion(t); 3287 return value_.opt_a_union; 3288 } 3289 3290 ::some::valid::ns::SimpleUnion& set_opt_a_union(::some::valid::ns::SimpleUnion&& t) { 3291 __fbthrift_clear(); 3292 type_ = Type::opt_a_union; 3293 ::new (std::addressof(value_.opt_a_union)) ::some::valid::ns::SimpleUnion(std::move(t)); 3294 return value_.opt_a_union; 3295 } 3296 3297 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::SimpleUnion, T...>> ::some::valid::ns::SimpleUnion& set_opt_a_union(T&&... t) { 3298 __fbthrift_clear(); 3299 type_ = Type::opt_a_union; 3300 ::new (std::addressof(value_.opt_a_union)) ::some::valid::ns::SimpleUnion(std::forward<T>(t)...); 3301 return value_.opt_a_union; 3302 } 3303 3304 ::std::vector<::some::valid::ns::SimpleUnion>& set_a_union_list(::std::vector<::some::valid::ns::SimpleUnion> const &t) { 3305 __fbthrift_clear(); 3306 type_ = Type::a_union_list; 3307 ::new (std::addressof(value_.a_union_list)) ::std::vector<::some::valid::ns::SimpleUnion>(t); 3308 return value_.a_union_list; 3309 } 3310 3311 ::std::vector<::some::valid::ns::SimpleUnion>& set_a_union_list(::std::vector<::some::valid::ns::SimpleUnion>&& t) { 3312 __fbthrift_clear(); 3313 type_ = Type::a_union_list; 3314 ::new (std::addressof(value_.a_union_list)) ::std::vector<::some::valid::ns::SimpleUnion>(std::move(t)); 3315 return value_.a_union_list; 3316 } 3317 3318 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::vector<::some::valid::ns::SimpleUnion>, T...>> ::std::vector<::some::valid::ns::SimpleUnion>& set_a_union_list(T&&... t) { 3319 __fbthrift_clear(); 3320 type_ = Type::a_union_list; 3321 ::new (std::addressof(value_.a_union_list)) ::std::vector<::some::valid::ns::SimpleUnion>(std::forward<T>(t)...); 3322 return value_.a_union_list; 3323 } 3324 3325 ::some::valid::ns::unionTypeDef& set_a_union_typedef(::some::valid::ns::unionTypeDef const &t) { 3326 __fbthrift_clear(); 3327 type_ = Type::a_union_typedef; 3328 ::new (std::addressof(value_.a_union_typedef)) ::some::valid::ns::unionTypeDef(t); 3329 return value_.a_union_typedef; 3330 } 3331 3332 ::some::valid::ns::unionTypeDef& set_a_union_typedef(::some::valid::ns::unionTypeDef&& t) { 3333 __fbthrift_clear(); 3334 type_ = Type::a_union_typedef; 3335 ::new (std::addressof(value_.a_union_typedef)) ::some::valid::ns::unionTypeDef(std::move(t)); 3336 return value_.a_union_typedef; 3337 } 3338 3339 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::unionTypeDef, T...>> ::some::valid::ns::unionTypeDef& set_a_union_typedef(T&&... t) { 3340 __fbthrift_clear(); 3341 type_ = Type::a_union_typedef; 3342 ::new (std::addressof(value_.a_union_typedef)) ::some::valid::ns::unionTypeDef(std::forward<T>(t)...); 3343 return value_.a_union_typedef; 3344 } 3345 3346 ::std::vector<::some::valid::ns::unionTypeDef>& set_a_union_typedef_list(::std::vector<::some::valid::ns::unionTypeDef> const &t) { 3347 __fbthrift_clear(); 3348 type_ = Type::a_union_typedef_list; 3349 ::new (std::addressof(value_.a_union_typedef_list)) ::std::vector<::some::valid::ns::unionTypeDef>(t); 3350 return value_.a_union_typedef_list; 3351 } 3352 3353 ::std::vector<::some::valid::ns::unionTypeDef>& set_a_union_typedef_list(::std::vector<::some::valid::ns::unionTypeDef>&& t) { 3354 __fbthrift_clear(); 3355 type_ = Type::a_union_typedef_list; 3356 ::new (std::addressof(value_.a_union_typedef_list)) ::std::vector<::some::valid::ns::unionTypeDef>(std::move(t)); 3357 return value_.a_union_typedef_list; 3358 } 3359 3360 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::vector<::some::valid::ns::unionTypeDef>, T...>> ::std::vector<::some::valid::ns::unionTypeDef>& set_a_union_typedef_list(T&&... t) { 3361 __fbthrift_clear(); 3362 type_ = Type::a_union_typedef_list; 3363 ::new (std::addressof(value_.a_union_typedef_list)) ::std::vector<::some::valid::ns::unionTypeDef>(std::forward<T>(t)...); 3364 return value_.a_union_typedef_list; 3365 } 3366 3367 ::std::string& set_MyBinaryField(::std::string const &t) { 3368 __fbthrift_clear(); 3369 type_ = Type::MyBinaryField; 3370 ::new (std::addressof(value_.MyBinaryField)) ::std::string(t); 3371 return value_.MyBinaryField; 3372 } 3373 3374 ::std::string& set_MyBinaryField(::std::string&& t) { 3375 __fbthrift_clear(); 3376 type_ = Type::MyBinaryField; 3377 ::new (std::addressof(value_.MyBinaryField)) ::std::string(std::move(t)); 3378 return value_.MyBinaryField; 3379 } 3380 3381 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_MyBinaryField(T&&... t) { 3382 __fbthrift_clear(); 3383 type_ = Type::MyBinaryField; 3384 ::new (std::addressof(value_.MyBinaryField)) ::std::string(std::forward<T>(t)...); 3385 return value_.MyBinaryField; 3386 } 3387 3388 ::std::string& set_MyBinaryField2(::std::string const &t) { 3389 __fbthrift_clear(); 3390 type_ = Type::MyBinaryField2; 3391 ::new (std::addressof(value_.MyBinaryField2)) ::std::string(t); 3392 return value_.MyBinaryField2; 3393 } 3394 3395 ::std::string& set_MyBinaryField2(::std::string&& t) { 3396 __fbthrift_clear(); 3397 type_ = Type::MyBinaryField2; 3398 ::new (std::addressof(value_.MyBinaryField2)) ::std::string(std::move(t)); 3399 return value_.MyBinaryField2; 3400 } 3401 3402 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_MyBinaryField2(T&&... t) { 3403 __fbthrift_clear(); 3404 type_ = Type::MyBinaryField2; 3405 ::new (std::addressof(value_.MyBinaryField2)) ::std::string(std::forward<T>(t)...); 3406 return value_.MyBinaryField2; 3407 } 3408 3409 ::std::vector<::std::string>& set_MyBinaryListField4(::std::vector<::std::string> const &t) { 3410 __fbthrift_clear(); 3411 type_ = Type::MyBinaryListField4; 3412 ::new (std::addressof(value_.MyBinaryListField4)) ::std::vector<::std::string>(t); 3413 return value_.MyBinaryListField4; 3414 } 3415 3416 ::std::vector<::std::string>& set_MyBinaryListField4(::std::vector<::std::string>&& t) { 3417 __fbthrift_clear(); 3418 type_ = Type::MyBinaryListField4; 3419 ::new (std::addressof(value_.MyBinaryListField4)) ::std::vector<::std::string>(std::move(t)); 3420 return value_.MyBinaryListField4; 3421 } 3422 3423 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::vector<::std::string>, T...>> ::std::vector<::std::string>& set_MyBinaryListField4(T&&... t) { 3424 __fbthrift_clear(); 3425 type_ = Type::MyBinaryListField4; 3426 ::new (std::addressof(value_.MyBinaryListField4)) ::std::vector<::std::string>(std::forward<T>(t)...); 3427 return value_.MyBinaryListField4; 3428 } 3429 ::std::unique_ptr<::some::valid::ns::MyStruct>& set_ref_field(::some::valid::ns::MyStruct const &t); 3430 ::std::unique_ptr<::some::valid::ns::MyStruct>& set_ref_field(::some::valid::ns::MyStruct&& t); 3431 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::MyStruct, T...>> ::std::unique_ptr<::some::valid::ns::MyStruct>& set_ref_field(T&&... t) { 3432 // defer resolution of ref_ in case ref_::element_type would here be incomplete 3433 using ref_ = folly::conditional_t<(sizeof...(T) < size_t(-1)), ::std::unique_ptr<::some::valid::ns::MyStruct>, void>; 3434 __fbthrift_clear(); 3435 type_ = Type::ref_field; 3436 ::new (std::addressof(value_.ref_field)) ref_(new typename ref_::element_type(std::forward<T>(t)...)); 3437 return value_.ref_field; 3438 } 3439 ::std::shared_ptr<const ::some::valid::ns::MyStruct>& set_ref_field2(::some::valid::ns::MyStruct const &t); 3440 ::std::shared_ptr<const ::some::valid::ns::MyStruct>& set_ref_field2(::some::valid::ns::MyStruct&& t); 3441 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::MyStruct, T...>> ::std::shared_ptr<const ::some::valid::ns::MyStruct>& set_ref_field2(T&&... t) { 3442 // defer resolution of ref_ in case ref_::element_type would here be incomplete 3443 using ref_ = folly::conditional_t<(sizeof...(T) < size_t(-1)), ::std::shared_ptr<const ::some::valid::ns::MyStruct>, void>; 3444 __fbthrift_clear(); 3445 type_ = Type::ref_field2; 3446 ::new (std::addressof(value_.ref_field2)) ref_(new typename ref_::element_type(std::forward<T>(t)...)); 3447 return value_.ref_field2; 3448 } 3449 3450 ::some::valid::ns::AnException& set_excp_field(::some::valid::ns::AnException const &t) { 3451 __fbthrift_clear(); 3452 type_ = Type::excp_field; 3453 ::new (std::addressof(value_.excp_field)) ::some::valid::ns::AnException(t); 3454 return value_.excp_field; 3455 } 3456 3457 ::some::valid::ns::AnException& set_excp_field(::some::valid::ns::AnException&& t) { 3458 __fbthrift_clear(); 3459 type_ = Type::excp_field; 3460 ::new (std::addressof(value_.excp_field)) ::some::valid::ns::AnException(std::move(t)); 3461 return value_.excp_field; 3462 } 3463 3464 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::AnException, T...>> ::some::valid::ns::AnException& set_excp_field(T&&... t) { 3465 __fbthrift_clear(); 3466 type_ = Type::excp_field; 3467 ::new (std::addressof(value_.excp_field)) ::some::valid::ns::AnException(std::forward<T>(t)...); 3468 return value_.excp_field; 3469 } 3470 3471 ::some::valid::ns::CustomProtocolType& set_MyCustomField(::some::valid::ns::CustomProtocolType const &t) { 3472 __fbthrift_clear(); 3473 type_ = Type::MyCustomField; 3474 ::new (std::addressof(value_.MyCustomField)) ::some::valid::ns::CustomProtocolType(t); 3475 return value_.MyCustomField; 3476 } 3477 3478 ::some::valid::ns::CustomProtocolType& set_MyCustomField(::some::valid::ns::CustomProtocolType&& t) { 3479 __fbthrift_clear(); 3480 type_ = Type::MyCustomField; 3481 ::new (std::addressof(value_.MyCustomField)) ::some::valid::ns::CustomProtocolType(std::move(t)); 3482 return value_.MyCustomField; 3483 } 3484 3485 template<typename... T, typename = ::apache::thrift::safe_overload_t<::some::valid::ns::CustomProtocolType, T...>> ::some::valid::ns::CustomProtocolType& set_MyCustomField(T&&... t) { 3486 __fbthrift_clear(); 3487 type_ = Type::MyCustomField; 3488 ::new (std::addressof(value_.MyCustomField)) ::some::valid::ns::CustomProtocolType(std::forward<T>(t)...); 3489 return value_.MyCustomField; 3490 } 3491 3492 ::std::int64_t const& get_intValue() const { 3493 if (type_ != Type::intValue) { 3494 ::apache::thrift::detail::throw_on_bad_field_access(); 3495 } 3496 return value_.intValue; 3497 } 3498 3499 ::std::int64_t const& get_opt_intValue() const { 3500 if (type_ != Type::opt_intValue) { 3501 ::apache::thrift::detail::throw_on_bad_field_access(); 3502 } 3503 return value_.opt_intValue; 3504 } 3505 3506 ::std::string const& get_stringValue() const { 3507 if (type_ != Type::stringValue) { 3508 ::apache::thrift::detail::throw_on_bad_field_access(); 3509 } 3510 return value_.stringValue; 3511 } 3512 3513 ::std::string const& get_opt_stringValue() const { 3514 if (type_ != Type::opt_stringValue) { 3515 ::apache::thrift::detail::throw_on_bad_field_access(); 3516 } 3517 return value_.opt_stringValue; 3518 } 3519 3520 ::std::int16_t const& get_intValue2() const { 3521 if (type_ != Type::intValue2) { 3522 ::apache::thrift::detail::throw_on_bad_field_access(); 3523 } 3524 return value_.intValue2; 3525 } 3526 3527 ::std::int32_t const& get_intValue3() const { 3528 if (type_ != Type::intValue3) { 3529 ::apache::thrift::detail::throw_on_bad_field_access(); 3530 } 3531 return value_.intValue3; 3532 } 3533 3534 double const& get_doubelValue() const { 3535 if (type_ != Type::doubelValue) { 3536 ::apache::thrift::detail::throw_on_bad_field_access(); 3537 } 3538 return value_.doubelValue; 3539 } 3540 3541 bool const& get_boolValue() const { 3542 if (type_ != Type::boolValue) { 3543 ::apache::thrift::detail::throw_on_bad_field_access(); 3544 } 3545 return value_.boolValue; 3546 } 3547 3548 ::std::vector<::std::int32_t> const& get_union_list() const { 3549 if (type_ != Type::union_list) { 3550 ::apache::thrift::detail::throw_on_bad_field_access(); 3551 } 3552 return value_.union_list; 3553 } 3554 3555 ::std::set<::std::int64_t> const& get_union_set() const { 3556 if (type_ != Type::union_set) { 3557 ::apache::thrift::detail::throw_on_bad_field_access(); 3558 } 3559 return value_.union_set; 3560 } 3561 3562 ::std::map<::std::string, ::std::int32_t> const& get_union_map() const { 3563 if (type_ != Type::union_map) { 3564 ::apache::thrift::detail::throw_on_bad_field_access(); 3565 } 3566 return value_.union_map; 3567 } 3568 3569 ::std::map<::std::string, ::std::int32_t> const& get_opt_union_map() const { 3570 if (type_ != Type::opt_union_map) { 3571 ::apache::thrift::detail::throw_on_bad_field_access(); 3572 } 3573 return value_.opt_union_map; 3574 } 3575 3576 ::some::valid::ns::MyEnumA const& get_enum_field() const { 3577 if (type_ != Type::enum_field) { 3578 ::apache::thrift::detail::throw_on_bad_field_access(); 3579 } 3580 return value_.enum_field; 3581 } 3582 3583 ::std::vector<::some::valid::ns::MyEnumA> const& get_enum_container() const { 3584 if (type_ != Type::enum_container) { 3585 ::apache::thrift::detail::throw_on_bad_field_access(); 3586 } 3587 return value_.enum_container; 3588 } 3589 3590 ::some::valid::ns::MyStruct const& get_a_struct() const { 3591 if (type_ != Type::a_struct) { 3592 ::apache::thrift::detail::throw_on_bad_field_access(); 3593 } 3594 return value_.a_struct; 3595 } 3596 3597 ::std::set<::some::valid::ns::MyStruct> const& get_a_set_struct() const { 3598 if (type_ != Type::a_set_struct) { 3599 ::apache::thrift::detail::throw_on_bad_field_access(); 3600 } 3601 return value_.a_set_struct; 3602 } 3603 3604 ::some::valid::ns::SimpleUnion const& get_a_union() const { 3605 if (type_ != Type::a_union) { 3606 ::apache::thrift::detail::throw_on_bad_field_access(); 3607 } 3608 return value_.a_union; 3609 } 3610 3611 ::some::valid::ns::SimpleUnion const& get_opt_a_union() const { 3612 if (type_ != Type::opt_a_union) { 3613 ::apache::thrift::detail::throw_on_bad_field_access(); 3614 } 3615 return value_.opt_a_union; 3616 } 3617 3618 ::std::vector<::some::valid::ns::SimpleUnion> const& get_a_union_list() const { 3619 if (type_ != Type::a_union_list) { 3620 ::apache::thrift::detail::throw_on_bad_field_access(); 3621 } 3622 return value_.a_union_list; 3623 } 3624 3625 ::some::valid::ns::unionTypeDef const& get_a_union_typedef() const { 3626 if (type_ != Type::a_union_typedef) { 3627 ::apache::thrift::detail::throw_on_bad_field_access(); 3628 } 3629 return value_.a_union_typedef; 3630 } 3631 3632 ::std::vector<::some::valid::ns::unionTypeDef> const& get_a_union_typedef_list() const { 3633 if (type_ != Type::a_union_typedef_list) { 3634 ::apache::thrift::detail::throw_on_bad_field_access(); 3635 } 3636 return value_.a_union_typedef_list; 3637 } 3638 3639 ::std::string const& get_MyBinaryField() const { 3640 if (type_ != Type::MyBinaryField) { 3641 ::apache::thrift::detail::throw_on_bad_field_access(); 3642 } 3643 return value_.MyBinaryField; 3644 } 3645 3646 ::std::string const& get_MyBinaryField2() const { 3647 if (type_ != Type::MyBinaryField2) { 3648 ::apache::thrift::detail::throw_on_bad_field_access(); 3649 } 3650 return value_.MyBinaryField2; 3651 } 3652 3653 ::std::vector<::std::string> const& get_MyBinaryListField4() const { 3654 if (type_ != Type::MyBinaryListField4) { 3655 ::apache::thrift::detail::throw_on_bad_field_access(); 3656 } 3657 return value_.MyBinaryListField4; 3658 } 3659 3660 ::std::unique_ptr<::some::valid::ns::MyStruct> const& get_ref_field() const { 3661 if (type_ != Type::ref_field) { 3662 ::apache::thrift::detail::throw_on_bad_field_access(); 3663 } 3664 return value_.ref_field; 3665 } 3666 3667 ::std::shared_ptr<const ::some::valid::ns::MyStruct> const& get_ref_field2() const { 3668 if (type_ != Type::ref_field2) { 3669 ::apache::thrift::detail::throw_on_bad_field_access(); 3670 } 3671 return value_.ref_field2; 3672 } 3673 3674 ::some::valid::ns::AnException const& get_excp_field() const { 3675 if (type_ != Type::excp_field) { 3676 ::apache::thrift::detail::throw_on_bad_field_access(); 3677 } 3678 return value_.excp_field; 3679 } 3680 3681 ::some::valid::ns::CustomProtocolType const& get_MyCustomField() const { 3682 if (type_ != Type::MyCustomField) { 3683 ::apache::thrift::detail::throw_on_bad_field_access(); 3684 } 3685 return value_.MyCustomField; 3686 } 3687 3688 ::std::int64_t& mutable_intValue() { 3689 assert(type_ == Type::intValue); 3690 return value_.intValue; 3691 } 3692 3693 ::std::int64_t& mutable_opt_intValue() { 3694 assert(type_ == Type::opt_intValue); 3695 return value_.opt_intValue; 3696 } 3697 3698 ::std::string& mutable_stringValue() { 3699 assert(type_ == Type::stringValue); 3700 return value_.stringValue; 3701 } 3702 3703 ::std::string& mutable_opt_stringValue() { 3704 assert(type_ == Type::opt_stringValue); 3705 return value_.opt_stringValue; 3706 } 3707 3708 ::std::int16_t& mutable_intValue2() { 3709 assert(type_ == Type::intValue2); 3710 return value_.intValue2; 3711 } 3712 3713 ::std::int32_t& mutable_intValue3() { 3714 assert(type_ == Type::intValue3); 3715 return value_.intValue3; 3716 } 3717 3718 double& mutable_doubelValue() { 3719 assert(type_ == Type::doubelValue); 3720 return value_.doubelValue; 3721 } 3722 3723 bool& mutable_boolValue() { 3724 assert(type_ == Type::boolValue); 3725 return value_.boolValue; 3726 } 3727 3728 ::std::vector<::std::int32_t>& mutable_union_list() { 3729 assert(type_ == Type::union_list); 3730 return value_.union_list; 3731 } 3732 3733 ::std::set<::std::int64_t>& mutable_union_set() { 3734 assert(type_ == Type::union_set); 3735 return value_.union_set; 3736 } 3737 3738 ::std::map<::std::string, ::std::int32_t>& mutable_union_map() { 3739 assert(type_ == Type::union_map); 3740 return value_.union_map; 3741 } 3742 3743 ::std::map<::std::string, ::std::int32_t>& mutable_opt_union_map() { 3744 assert(type_ == Type::opt_union_map); 3745 return value_.opt_union_map; 3746 } 3747 3748 ::some::valid::ns::MyEnumA& mutable_enum_field() { 3749 assert(type_ == Type::enum_field); 3750 return value_.enum_field; 3751 } 3752 3753 ::std::vector<::some::valid::ns::MyEnumA>& mutable_enum_container() { 3754 assert(type_ == Type::enum_container); 3755 return value_.enum_container; 3756 } 3757 3758 ::some::valid::ns::MyStruct& mutable_a_struct() { 3759 assert(type_ == Type::a_struct); 3760 return value_.a_struct; 3761 } 3762 3763 ::std::set<::some::valid::ns::MyStruct>& mutable_a_set_struct() { 3764 assert(type_ == Type::a_set_struct); 3765 return value_.a_set_struct; 3766 } 3767 3768 ::some::valid::ns::SimpleUnion& mutable_a_union() { 3769 assert(type_ == Type::a_union); 3770 return value_.a_union; 3771 } 3772 3773 ::some::valid::ns::SimpleUnion& mutable_opt_a_union() { 3774 assert(type_ == Type::opt_a_union); 3775 return value_.opt_a_union; 3776 } 3777 3778 ::std::vector<::some::valid::ns::SimpleUnion>& mutable_a_union_list() { 3779 assert(type_ == Type::a_union_list); 3780 return value_.a_union_list; 3781 } 3782 3783 ::some::valid::ns::unionTypeDef& mutable_a_union_typedef() { 3784 assert(type_ == Type::a_union_typedef); 3785 return value_.a_union_typedef; 3786 } 3787 3788 ::std::vector<::some::valid::ns::unionTypeDef>& mutable_a_union_typedef_list() { 3789 assert(type_ == Type::a_union_typedef_list); 3790 return value_.a_union_typedef_list; 3791 } 3792 3793 ::std::string& mutable_MyBinaryField() { 3794 assert(type_ == Type::MyBinaryField); 3795 return value_.MyBinaryField; 3796 } 3797 3798 ::std::string& mutable_MyBinaryField2() { 3799 assert(type_ == Type::MyBinaryField2); 3800 return value_.MyBinaryField2; 3801 } 3802 3803 ::std::vector<::std::string>& mutable_MyBinaryListField4() { 3804 assert(type_ == Type::MyBinaryListField4); 3805 return value_.MyBinaryListField4; 3806 } 3807 3808 ::std::unique_ptr<::some::valid::ns::MyStruct>& mutable_ref_field() { 3809 assert(type_ == Type::ref_field); 3810 return value_.ref_field; 3811 } 3812 3813 ::std::shared_ptr<const ::some::valid::ns::MyStruct>& mutable_ref_field2() { 3814 assert(type_ == Type::ref_field2); 3815 return value_.ref_field2; 3816 } 3817 3818 ::some::valid::ns::AnException& mutable_excp_field() { 3819 assert(type_ == Type::excp_field); 3820 return value_.excp_field; 3821 } 3822 3823 ::some::valid::ns::CustomProtocolType& mutable_MyCustomField() { 3824 assert(type_ == Type::MyCustomField); 3825 return value_.MyCustomField; 3826 } 3827 3828 ::std::int64_t move_intValue() { 3829 assert(type_ == Type::intValue); 3830 return std::move(value_.intValue); 3831 } 3832 3833 ::std::int64_t move_opt_intValue() { 3834 assert(type_ == Type::opt_intValue); 3835 return std::move(value_.opt_intValue); 3836 } 3837 3838 ::std::string move_stringValue() { 3839 assert(type_ == Type::stringValue); 3840 return std::move(value_.stringValue); 3841 } 3842 3843 ::std::string move_opt_stringValue() { 3844 assert(type_ == Type::opt_stringValue); 3845 return std::move(value_.opt_stringValue); 3846 } 3847 3848 ::std::int16_t move_intValue2() { 3849 assert(type_ == Type::intValue2); 3850 return std::move(value_.intValue2); 3851 } 3852 3853 ::std::int32_t move_intValue3() { 3854 assert(type_ == Type::intValue3); 3855 return std::move(value_.intValue3); 3856 } 3857 3858 double move_doubelValue() { 3859 assert(type_ == Type::doubelValue); 3860 return std::move(value_.doubelValue); 3861 } 3862 3863 bool move_boolValue() { 3864 assert(type_ == Type::boolValue); 3865 return std::move(value_.boolValue); 3866 } 3867 3868 ::std::vector<::std::int32_t> move_union_list() { 3869 assert(type_ == Type::union_list); 3870 return std::move(value_.union_list); 3871 } 3872 3873 ::std::set<::std::int64_t> move_union_set() { 3874 assert(type_ == Type::union_set); 3875 return std::move(value_.union_set); 3876 } 3877 3878 ::std::map<::std::string, ::std::int32_t> move_union_map() { 3879 assert(type_ == Type::union_map); 3880 return std::move(value_.union_map); 3881 } 3882 3883 ::std::map<::std::string, ::std::int32_t> move_opt_union_map() { 3884 assert(type_ == Type::opt_union_map); 3885 return std::move(value_.opt_union_map); 3886 } 3887 3888 ::some::valid::ns::MyEnumA move_enum_field() { 3889 assert(type_ == Type::enum_field); 3890 return std::move(value_.enum_field); 3891 } 3892 3893 ::std::vector<::some::valid::ns::MyEnumA> move_enum_container() { 3894 assert(type_ == Type::enum_container); 3895 return std::move(value_.enum_container); 3896 } 3897 3898 ::some::valid::ns::MyStruct move_a_struct() { 3899 assert(type_ == Type::a_struct); 3900 return std::move(value_.a_struct); 3901 } 3902 3903 ::std::set<::some::valid::ns::MyStruct> move_a_set_struct() { 3904 assert(type_ == Type::a_set_struct); 3905 return std::move(value_.a_set_struct); 3906 } 3907 3908 ::some::valid::ns::SimpleUnion move_a_union() { 3909 assert(type_ == Type::a_union); 3910 return std::move(value_.a_union); 3911 } 3912 3913 ::some::valid::ns::SimpleUnion move_opt_a_union() { 3914 assert(type_ == Type::opt_a_union); 3915 return std::move(value_.opt_a_union); 3916 } 3917 3918 ::std::vector<::some::valid::ns::SimpleUnion> move_a_union_list() { 3919 assert(type_ == Type::a_union_list); 3920 return std::move(value_.a_union_list); 3921 } 3922 3923 ::some::valid::ns::unionTypeDef move_a_union_typedef() { 3924 assert(type_ == Type::a_union_typedef); 3925 return std::move(value_.a_union_typedef); 3926 } 3927 3928 ::std::vector<::some::valid::ns::unionTypeDef> move_a_union_typedef_list() { 3929 assert(type_ == Type::a_union_typedef_list); 3930 return std::move(value_.a_union_typedef_list); 3931 } 3932 3933 ::std::string move_MyBinaryField() { 3934 assert(type_ == Type::MyBinaryField); 3935 return std::move(value_.MyBinaryField); 3936 } 3937 3938 ::std::string move_MyBinaryField2() { 3939 assert(type_ == Type::MyBinaryField2); 3940 return std::move(value_.MyBinaryField2); 3941 } 3942 3943 ::std::vector<::std::string> move_MyBinaryListField4() { 3944 assert(type_ == Type::MyBinaryListField4); 3945 return std::move(value_.MyBinaryListField4); 3946 } 3947 3948 ::std::unique_ptr<::some::valid::ns::MyStruct> move_ref_field() { 3949 assert(type_ == Type::ref_field); 3950 return std::move(value_.ref_field); 3951 } 3952 3953 ::std::shared_ptr<const ::some::valid::ns::MyStruct> move_ref_field2() { 3954 assert(type_ == Type::ref_field2); 3955 return std::move(value_.ref_field2); 3956 } 3957 3958 ::some::valid::ns::AnException move_excp_field() { 3959 assert(type_ == Type::excp_field); 3960 return std::move(value_.excp_field); 3961 } 3962 3963 ::some::valid::ns::CustomProtocolType move_MyCustomField() { 3964 assert(type_ == Type::MyCustomField); 3965 return std::move(value_.MyCustomField); 3966 } 3967 3968 template <typename..., typename T = ::std::int64_t> 3969 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> intValue_ref() const& { 3970 return {value_.intValue, type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3971 } 3972 3973 template <typename..., typename T = ::std::int64_t> 3974 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> intValue_ref() const&& { 3975 return {std::move(value_.intValue), type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3976 } 3977 3978 template <typename..., typename T = ::std::int64_t> 3979 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> intValue_ref() & { 3980 return {value_.intValue, type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3981 } 3982 3983 template <typename..., typename T = ::std::int64_t> 3984 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> intValue_ref() && { 3985 return {std::move(value_.intValue), type_, intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3986 } 3987 template <typename..., typename T = ::std::int64_t> 3988 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> opt_intValue_ref() const& { 3989 return {value_.opt_intValue, type_, opt_intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3990 } 3991 3992 template <typename..., typename T = ::std::int64_t> 3993 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> opt_intValue_ref() const&& { 3994 return {std::move(value_.opt_intValue), type_, opt_intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 3995 } 3996 3997 template <typename..., typename T = ::std::int64_t> 3998 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> opt_intValue_ref() & { 3999 return {value_.opt_intValue, type_, opt_intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4000 } 4001 4002 template <typename..., typename T = ::std::int64_t> 4003 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> opt_intValue_ref() && { 4004 return {std::move(value_.opt_intValue), type_, opt_intValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4005 } 4006 template <typename..., typename T = ::std::string> 4007 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> stringValue_ref() const& { 4008 return {value_.stringValue, type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4009 } 4010 4011 template <typename..., typename T = ::std::string> 4012 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> stringValue_ref() const&& { 4013 return {std::move(value_.stringValue), type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4014 } 4015 4016 template <typename..., typename T = ::std::string> 4017 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> stringValue_ref() & { 4018 return {value_.stringValue, type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4019 } 4020 4021 template <typename..., typename T = ::std::string> 4022 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> stringValue_ref() && { 4023 return {std::move(value_.stringValue), type_, stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4024 } 4025 template <typename..., typename T = ::std::string> 4026 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> opt_stringValue_ref() const& { 4027 return {value_.opt_stringValue, type_, opt_stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4028 } 4029 4030 template <typename..., typename T = ::std::string> 4031 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> opt_stringValue_ref() const&& { 4032 return {std::move(value_.opt_stringValue), type_, opt_stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4033 } 4034 4035 template <typename..., typename T = ::std::string> 4036 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> opt_stringValue_ref() & { 4037 return {value_.opt_stringValue, type_, opt_stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4038 } 4039 4040 template <typename..., typename T = ::std::string> 4041 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> opt_stringValue_ref() && { 4042 return {std::move(value_.opt_stringValue), type_, opt_stringValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4043 } 4044 template <typename..., typename T = ::std::int16_t> 4045 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> intValue2_ref() const& { 4046 return {value_.intValue2, type_, intValue2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4047 } 4048 4049 template <typename..., typename T = ::std::int16_t> 4050 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> intValue2_ref() const&& { 4051 return {std::move(value_.intValue2), type_, intValue2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4052 } 4053 4054 template <typename..., typename T = ::std::int16_t> 4055 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> intValue2_ref() & { 4056 return {value_.intValue2, type_, intValue2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4057 } 4058 4059 template <typename..., typename T = ::std::int16_t> 4060 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> intValue2_ref() && { 4061 return {std::move(value_.intValue2), type_, intValue2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4062 } 4063 template <typename..., typename T = ::std::int32_t> 4064 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> intValue3_ref() const& { 4065 return {value_.intValue3, type_, intValue3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4066 } 4067 4068 template <typename..., typename T = ::std::int32_t> 4069 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> intValue3_ref() const&& { 4070 return {std::move(value_.intValue3), type_, intValue3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4071 } 4072 4073 template <typename..., typename T = ::std::int32_t> 4074 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> intValue3_ref() & { 4075 return {value_.intValue3, type_, intValue3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4076 } 4077 4078 template <typename..., typename T = ::std::int32_t> 4079 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> intValue3_ref() && { 4080 return {std::move(value_.intValue3), type_, intValue3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4081 } 4082 template <typename..., typename T = double> 4083 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> doubelValue_ref() const& { 4084 return {value_.doubelValue, type_, doubelValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4085 } 4086 4087 template <typename..., typename T = double> 4088 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> doubelValue_ref() const&& { 4089 return {std::move(value_.doubelValue), type_, doubelValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4090 } 4091 4092 template <typename..., typename T = double> 4093 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> doubelValue_ref() & { 4094 return {value_.doubelValue, type_, doubelValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4095 } 4096 4097 template <typename..., typename T = double> 4098 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> doubelValue_ref() && { 4099 return {std::move(value_.doubelValue), type_, doubelValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4100 } 4101 template <typename..., typename T = bool> 4102 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> boolValue_ref() const& { 4103 return {value_.boolValue, type_, boolValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4104 } 4105 4106 template <typename..., typename T = bool> 4107 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> boolValue_ref() const&& { 4108 return {std::move(value_.boolValue), type_, boolValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4109 } 4110 4111 template <typename..., typename T = bool> 4112 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> boolValue_ref() & { 4113 return {value_.boolValue, type_, boolValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4114 } 4115 4116 template <typename..., typename T = bool> 4117 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> boolValue_ref() && { 4118 return {std::move(value_.boolValue), type_, boolValue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4119 } 4120 template <typename..., typename T = ::std::vector<::std::int32_t>> 4121 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> union_list_ref() const& { 4122 return {value_.union_list, type_, union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4123 } 4124 4125 template <typename..., typename T = ::std::vector<::std::int32_t>> 4126 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> union_list_ref() const&& { 4127 return {std::move(value_.union_list), type_, union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4128 } 4129 4130 template <typename..., typename T = ::std::vector<::std::int32_t>> 4131 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> union_list_ref() & { 4132 return {value_.union_list, type_, union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4133 } 4134 4135 template <typename..., typename T = ::std::vector<::std::int32_t>> 4136 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> union_list_ref() && { 4137 return {std::move(value_.union_list), type_, union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4138 } 4139 template <typename..., typename T = ::std::set<::std::int64_t>> 4140 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> union_set_ref() const& { 4141 return {value_.union_set, type_, union_set, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4142 } 4143 4144 template <typename..., typename T = ::std::set<::std::int64_t>> 4145 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> union_set_ref() const&& { 4146 return {std::move(value_.union_set), type_, union_set, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4147 } 4148 4149 template <typename..., typename T = ::std::set<::std::int64_t>> 4150 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> union_set_ref() & { 4151 return {value_.union_set, type_, union_set, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4152 } 4153 4154 template <typename..., typename T = ::std::set<::std::int64_t>> 4155 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> union_set_ref() && { 4156 return {std::move(value_.union_set), type_, union_set, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4157 } 4158 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4159 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> union_map_ref() const& { 4160 return {value_.union_map, type_, union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4161 } 4162 4163 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4164 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> union_map_ref() const&& { 4165 return {std::move(value_.union_map), type_, union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4166 } 4167 4168 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4169 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> union_map_ref() & { 4170 return {value_.union_map, type_, union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4171 } 4172 4173 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4174 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> union_map_ref() && { 4175 return {std::move(value_.union_map), type_, union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4176 } 4177 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4178 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> opt_union_map_ref() const& { 4179 return {value_.opt_union_map, type_, opt_union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4180 } 4181 4182 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4183 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> opt_union_map_ref() const&& { 4184 return {std::move(value_.opt_union_map), type_, opt_union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4185 } 4186 4187 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4188 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> opt_union_map_ref() & { 4189 return {value_.opt_union_map, type_, opt_union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4190 } 4191 4192 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4193 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> opt_union_map_ref() && { 4194 return {std::move(value_.opt_union_map), type_, opt_union_map, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4195 } 4196 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4197 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> enum_field_ref() const& { 4198 return {value_.enum_field, type_, enum_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4199 } 4200 4201 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4202 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> enum_field_ref() const&& { 4203 return {std::move(value_.enum_field), type_, enum_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4204 } 4205 4206 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4207 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> enum_field_ref() & { 4208 return {value_.enum_field, type_, enum_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4209 } 4210 4211 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4212 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> enum_field_ref() && { 4213 return {std::move(value_.enum_field), type_, enum_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4214 } 4215 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4216 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> enum_container_ref() const& { 4217 return {value_.enum_container, type_, enum_container, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4218 } 4219 4220 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4221 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> enum_container_ref() const&& { 4222 return {std::move(value_.enum_container), type_, enum_container, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4223 } 4224 4225 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4226 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> enum_container_ref() & { 4227 return {value_.enum_container, type_, enum_container, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4228 } 4229 4230 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4231 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> enum_container_ref() && { 4232 return {std::move(value_.enum_container), type_, enum_container, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4233 } 4234 template <typename..., typename T = ::some::valid::ns::MyStruct> 4235 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_struct_ref() const& { 4236 return {value_.a_struct, type_, a_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4237 } 4238 4239 template <typename..., typename T = ::some::valid::ns::MyStruct> 4240 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_struct_ref() const&& { 4241 return {std::move(value_.a_struct), type_, a_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4242 } 4243 4244 template <typename..., typename T = ::some::valid::ns::MyStruct> 4245 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_struct_ref() & { 4246 return {value_.a_struct, type_, a_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4247 } 4248 4249 template <typename..., typename T = ::some::valid::ns::MyStruct> 4250 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_struct_ref() && { 4251 return {std::move(value_.a_struct), type_, a_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4252 } 4253 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4254 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_set_struct_ref() const& { 4255 return {value_.a_set_struct, type_, a_set_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4256 } 4257 4258 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4259 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_set_struct_ref() const&& { 4260 return {std::move(value_.a_set_struct), type_, a_set_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4261 } 4262 4263 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4264 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_set_struct_ref() & { 4265 return {value_.a_set_struct, type_, a_set_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4266 } 4267 4268 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4269 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_set_struct_ref() && { 4270 return {std::move(value_.a_set_struct), type_, a_set_struct, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4271 } 4272 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4273 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_union_ref() const& { 4274 return {value_.a_union, type_, a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4275 } 4276 4277 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4278 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_union_ref() const&& { 4279 return {std::move(value_.a_union), type_, a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4280 } 4281 4282 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4283 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_union_ref() & { 4284 return {value_.a_union, type_, a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4285 } 4286 4287 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4288 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_union_ref() && { 4289 return {std::move(value_.a_union), type_, a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4290 } 4291 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4292 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> opt_a_union_ref() const& { 4293 return {value_.opt_a_union, type_, opt_a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4294 } 4295 4296 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4297 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> opt_a_union_ref() const&& { 4298 return {std::move(value_.opt_a_union), type_, opt_a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4299 } 4300 4301 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4302 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> opt_a_union_ref() & { 4303 return {value_.opt_a_union, type_, opt_a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4304 } 4305 4306 template <typename..., typename T = ::some::valid::ns::SimpleUnion> 4307 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> opt_a_union_ref() && { 4308 return {std::move(value_.opt_a_union), type_, opt_a_union, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4309 } 4310 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4311 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_union_list_ref() const& { 4312 return {value_.a_union_list, type_, a_union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4313 } 4314 4315 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4316 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_union_list_ref() const&& { 4317 return {std::move(value_.a_union_list), type_, a_union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4318 } 4319 4320 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4321 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_union_list_ref() & { 4322 return {value_.a_union_list, type_, a_union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4323 } 4324 4325 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4326 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_union_list_ref() && { 4327 return {std::move(value_.a_union_list), type_, a_union_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4328 } 4329 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4330 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_union_typedef_ref() const& { 4331 return {value_.a_union_typedef, type_, a_union_typedef, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4332 } 4333 4334 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4335 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_union_typedef_ref() const&& { 4336 return {std::move(value_.a_union_typedef), type_, a_union_typedef, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4337 } 4338 4339 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4340 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_union_typedef_ref() & { 4341 return {value_.a_union_typedef, type_, a_union_typedef, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4342 } 4343 4344 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4345 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_union_typedef_ref() && { 4346 return {std::move(value_.a_union_typedef), type_, a_union_typedef, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4347 } 4348 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4349 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_union_typedef_list_ref() const& { 4350 return {value_.a_union_typedef_list, type_, a_union_typedef_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4351 } 4352 4353 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4354 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_union_typedef_list_ref() const&& { 4355 return {std::move(value_.a_union_typedef_list), type_, a_union_typedef_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4356 } 4357 4358 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4359 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_union_typedef_list_ref() & { 4360 return {value_.a_union_typedef_list, type_, a_union_typedef_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4361 } 4362 4363 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4364 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_union_typedef_list_ref() && { 4365 return {std::move(value_.a_union_typedef_list), type_, a_union_typedef_list, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4366 } 4367 template <typename..., typename T = ::std::string> 4368 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> MyBinaryField_ref() const& { 4369 return {value_.MyBinaryField, type_, MyBinaryField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4370 } 4371 4372 template <typename..., typename T = ::std::string> 4373 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> MyBinaryField_ref() const&& { 4374 return {std::move(value_.MyBinaryField), type_, MyBinaryField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4375 } 4376 4377 template <typename..., typename T = ::std::string> 4378 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> MyBinaryField_ref() & { 4379 return {value_.MyBinaryField, type_, MyBinaryField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4380 } 4381 4382 template <typename..., typename T = ::std::string> 4383 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> MyBinaryField_ref() && { 4384 return {std::move(value_.MyBinaryField), type_, MyBinaryField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4385 } 4386 template <typename..., typename T = ::std::string> 4387 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> MyBinaryField2_ref() const& { 4388 return {value_.MyBinaryField2, type_, MyBinaryField2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4389 } 4390 4391 template <typename..., typename T = ::std::string> 4392 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> MyBinaryField2_ref() const&& { 4393 return {std::move(value_.MyBinaryField2), type_, MyBinaryField2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4394 } 4395 4396 template <typename..., typename T = ::std::string> 4397 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> MyBinaryField2_ref() & { 4398 return {value_.MyBinaryField2, type_, MyBinaryField2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4399 } 4400 4401 template <typename..., typename T = ::std::string> 4402 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> MyBinaryField2_ref() && { 4403 return {std::move(value_.MyBinaryField2), type_, MyBinaryField2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4404 } 4405 template <typename..., typename T = ::std::vector<::std::string>> 4406 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> MyBinaryListField4_ref() const& { 4407 return {value_.MyBinaryListField4, type_, MyBinaryListField4, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4408 } 4409 4410 template <typename..., typename T = ::std::vector<::std::string>> 4411 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> MyBinaryListField4_ref() const&& { 4412 return {std::move(value_.MyBinaryListField4), type_, MyBinaryListField4, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4413 } 4414 4415 template <typename..., typename T = ::std::vector<::std::string>> 4416 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> MyBinaryListField4_ref() & { 4417 return {value_.MyBinaryListField4, type_, MyBinaryListField4, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4418 } 4419 4420 template <typename..., typename T = ::std::vector<::std::string>> 4421 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> MyBinaryListField4_ref() && { 4422 return {std::move(value_.MyBinaryListField4), type_, MyBinaryListField4, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4423 } 4424 template <typename..., typename T = ::std::unique_ptr<::some::valid::ns::MyStruct>> 4425 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ref_field_ref() const& { 4426 return {value_.ref_field, type_, ref_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4427 } 4428 4429 template <typename..., typename T = ::std::unique_ptr<::some::valid::ns::MyStruct>> 4430 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ref_field_ref() const&& { 4431 return {std::move(value_.ref_field), type_, ref_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4432 } 4433 4434 template <typename..., typename T = ::std::unique_ptr<::some::valid::ns::MyStruct>> 4435 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ref_field_ref() & { 4436 return {value_.ref_field, type_, ref_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4437 } 4438 4439 template <typename..., typename T = ::std::unique_ptr<::some::valid::ns::MyStruct>> 4440 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ref_field_ref() && { 4441 return {std::move(value_.ref_field), type_, ref_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4442 } 4443 template <typename..., typename T = ::std::shared_ptr<const ::some::valid::ns::MyStruct>> 4444 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ref_field2_ref() const& { 4445 return {value_.ref_field2, type_, ref_field2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4446 } 4447 4448 template <typename..., typename T = ::std::shared_ptr<const ::some::valid::ns::MyStruct>> 4449 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ref_field2_ref() const&& { 4450 return {std::move(value_.ref_field2), type_, ref_field2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4451 } 4452 4453 template <typename..., typename T = ::std::shared_ptr<const ::some::valid::ns::MyStruct>> 4454 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ref_field2_ref() & { 4455 return {value_.ref_field2, type_, ref_field2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4456 } 4457 4458 template <typename..., typename T = ::std::shared_ptr<const ::some::valid::ns::MyStruct>> 4459 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ref_field2_ref() && { 4460 return {std::move(value_.ref_field2), type_, ref_field2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4461 } 4462 template <typename..., typename T = ::some::valid::ns::AnException> 4463 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> excp_field_ref() const& { 4464 return {value_.excp_field, type_, excp_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4465 } 4466 4467 template <typename..., typename T = ::some::valid::ns::AnException> 4468 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> excp_field_ref() const&& { 4469 return {std::move(value_.excp_field), type_, excp_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4470 } 4471 4472 template <typename..., typename T = ::some::valid::ns::AnException> 4473 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> excp_field_ref() & { 4474 return {value_.excp_field, type_, excp_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4475 } 4476 4477 template <typename..., typename T = ::some::valid::ns::AnException> 4478 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> excp_field_ref() && { 4479 return {std::move(value_.excp_field), type_, excp_field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4480 } 4481 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4482 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> MyCustomField_ref() const& { 4483 return {value_.MyCustomField, type_, MyCustomField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4484 } 4485 4486 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4487 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> MyCustomField_ref() const&& { 4488 return {std::move(value_.MyCustomField), type_, MyCustomField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4489 } 4490 4491 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4492 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> MyCustomField_ref() & { 4493 return {value_.MyCustomField, type_, MyCustomField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4494 } 4495 4496 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4497 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> MyCustomField_ref() && { 4498 return {std::move(value_.MyCustomField), type_, MyCustomField, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 4499 } 4500 Type getType() const { return static_cast<Type>(type_); } 4501 4502 template <class Protocol_> 4503 uint32_t read(Protocol_* iprot); 4504 template <class Protocol_> 4505 uint32_t serializedSize(Protocol_ const* prot_) const; 4506 template <class Protocol_> 4507 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 4508 template <class Protocol_> 4509 uint32_t write(Protocol_* prot_) const; 4510 protected: 4511 template <class T> 4512 void destruct(T &val) { 4513 (&val)->~T(); 4514 } 4515 4516 storage_type value_; 4517 std::underlying_type_t<Type> type_; 4518 // user defined code (cpp2.methods = ...) 4519 void foo(const std::string& bar) {} 4520 4521 private: 4522 template <class Protocol_> 4523 void readNoXfer(Protocol_* iprot); 4524 4525 friend class ::apache::thrift::Cpp2Ops<ComplexUnion>; 4526 friend void swap(ComplexUnion& a, ComplexUnion& b); 4527 }; 4528 4529 template <class Protocol_> 4530 uint32_t ComplexUnion::read(Protocol_* iprot) { 4531 auto _xferStart = iprot->getCursorPosition(); 4532 readNoXfer(iprot); 4533 return iprot->getCursorPosition() - _xferStart; 4534 } 4535 4536 }}} // some::valid::ns 4537 namespace some { namespace valid { namespace ns { 4538 class FOLLY_EXPORT AnException : public apache::thrift::TException { 4539 private: 4540 friend struct ::apache::thrift::detail::st::struct_private_access; 4541 4542 // used by a static_assert in the corresponding source 4543 static constexpr bool __fbthrift_cpp2_gen_json = true; 4544 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 4545 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 4546 4547 void __fbthrift_clear(); 4548 static constexpr ::apache::thrift::ExceptionKind __fbthrift_cpp2_gen_exception_kind = 4549 ::apache::thrift::ExceptionKind::UNSPECIFIED; 4550 static constexpr ::apache::thrift::ExceptionSafety __fbthrift_cpp2_gen_exception_safety = 4551 ::apache::thrift::ExceptionSafety::UNSPECIFIED; 4552 static constexpr ::apache::thrift::ExceptionBlame __fbthrift_cpp2_gen_exception_blame = 4553 ::apache::thrift::ExceptionBlame::UNSPECIFIED; 4554 4555 public: 4556 using __fbthrift_cpp2_type = AnException; 4557 static constexpr bool __fbthrift_cpp2_is_union = 4558 false; 4559 4560 4561 public: 4562 4563 AnException(); 4564 explicit AnException(std::string __message); 4565 4566 // FragileConstructor for use in initialization lists only. 4567 [[deprecated("This constructor is deprecated")]] 4568 AnException(apache::thrift::FragileConstructor, ::std::int32_t code__arg, ::std::int32_t req_code__arg, ::std::string message2__arg, ::std::string req_message__arg, ::std::vector<::std::int32_t> exception_list__arg, ::std::set<::std::int64_t> exception_set__arg, ::std::map<::std::string, ::std::int32_t> exception_map__arg, ::std::map<::std::string, ::std::int32_t> req_exception_map__arg, ::some::valid::ns::MyEnumA enum_field__arg, ::std::vector<::some::valid::ns::MyEnumA> enum_container__arg, ::some::valid::ns::MyStruct a_struct__arg, ::std::set<::some::valid::ns::MyStruct> a_set_struct__arg, ::std::vector<::some::valid::ns::SimpleUnion> a_union_list__arg, ::some::valid::ns::unionTypeDef union_typedef__arg, ::std::vector<::some::valid::ns::unionTypeDef> a_union_typedef_list__arg, ::some::valid::ns::CustomProtocolType MyCustomField__arg, ::some::valid::ns::CustomProtocolType MyOptCustomField__arg); 4569 4570 AnException(AnException&&) noexcept; 4571 AnException(const AnException& src); 4572 4573 4574 AnException& operator=(AnException&&) noexcept; 4575 AnException& operator=(const AnException& src); 4576 4577 ~AnException() override; 4578 4579 private: 4580 ::std::int32_t code; 4581 public: 4582 ::std::int32_t req_code; 4583 private: 4584 ::std::string message2; 4585 public: 4586 ::std::string req_message; 4587 private: 4588 ::std::vector<::std::int32_t> exception_list; 4589 private: 4590 ::std::set<::std::int64_t> exception_set; 4591 private: 4592 ::std::map<::std::string, ::std::int32_t> exception_map; 4593 public: 4594 ::std::map<::std::string, ::std::int32_t> req_exception_map; 4595 private: 4596 ::some::valid::ns::MyEnumA enum_field; 4597 private: 4598 ::std::vector<::some::valid::ns::MyEnumA> enum_container; 4599 private: 4600 ::some::valid::ns::MyStruct a_struct; 4601 private: 4602 ::std::set<::some::valid::ns::MyStruct> a_set_struct; 4603 private: 4604 ::std::vector<::some::valid::ns::SimpleUnion> a_union_list; 4605 private: 4606 ::some::valid::ns::unionTypeDef union_typedef; 4607 private: 4608 ::std::vector<::some::valid::ns::unionTypeDef> a_union_typedef_list; 4609 private: 4610 ::some::valid::ns::CustomProtocolType MyCustomField; 4611 private: 4612 ::some::valid::ns::CustomProtocolType MyOptCustomField; 4613 private: 4614 apache::thrift::detail::isset_bitset<14, false> __isset; 4615 4616 public: 4617 4618 bool operator==(const AnException&) const; 4619 bool operator<(const AnException&) const; 4620 4621 template <typename..., typename T = ::std::int32_t> 4622 FOLLY_ERASE ::apache::thrift::field_ref<const T&> code_ref() const& { 4623 return {this->code, __isset.at(0), __isset.bit(0)}; 4624 } 4625 4626 template <typename..., typename T = ::std::int32_t> 4627 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> code_ref() const&& { 4628 return {static_cast<const T&&>(this->code), __isset.at(0), __isset.bit(0)}; 4629 } 4630 4631 template <typename..., typename T = ::std::int32_t> 4632 FOLLY_ERASE ::apache::thrift::field_ref<T&> code_ref() & { 4633 return {this->code, __isset.at(0), __isset.bit(0)}; 4634 } 4635 4636 template <typename..., typename T = ::std::int32_t> 4637 FOLLY_ERASE ::apache::thrift::field_ref<T&&> code_ref() && { 4638 return {static_cast<T&&>(this->code), __isset.at(0), __isset.bit(0)}; 4639 } 4640 4641 template <typename..., typename T = ::std::int32_t> 4642 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_code_ref() const& { 4643 return ::apache::thrift::required_field_ref<const T&>{this->req_code}; 4644 } 4645 4646 template <typename..., typename T = ::std::int32_t> 4647 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_code_ref() const&& { 4648 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_code)}; 4649 } 4650 4651 template <typename..., typename T = ::std::int32_t> 4652 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_code_ref() & { 4653 return ::apache::thrift::required_field_ref<T&>{this->req_code}; 4654 } 4655 4656 template <typename..., typename T = ::std::int32_t> 4657 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_code_ref() && { 4658 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_code)}; 4659 } 4660 4661 template <typename..., typename T = ::std::string> 4662 FOLLY_ERASE ::apache::thrift::field_ref<const T&> message2_ref() const& { 4663 return {this->message2, __isset.at(1), __isset.bit(1)}; 4664 } 4665 4666 template <typename..., typename T = ::std::string> 4667 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> message2_ref() const&& { 4668 return {static_cast<const T&&>(this->message2), __isset.at(1), __isset.bit(1)}; 4669 } 4670 4671 template <typename..., typename T = ::std::string> 4672 FOLLY_ERASE ::apache::thrift::field_ref<T&> message2_ref() & { 4673 return {this->message2, __isset.at(1), __isset.bit(1)}; 4674 } 4675 4676 template <typename..., typename T = ::std::string> 4677 FOLLY_ERASE ::apache::thrift::field_ref<T&&> message2_ref() && { 4678 return {static_cast<T&&>(this->message2), __isset.at(1), __isset.bit(1)}; 4679 } 4680 4681 template <typename..., typename T = ::std::string> 4682 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_message_ref() const& { 4683 return ::apache::thrift::required_field_ref<const T&>{this->req_message}; 4684 } 4685 4686 template <typename..., typename T = ::std::string> 4687 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_message_ref() const&& { 4688 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_message)}; 4689 } 4690 4691 template <typename..., typename T = ::std::string> 4692 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_message_ref() & { 4693 return ::apache::thrift::required_field_ref<T&>{this->req_message}; 4694 } 4695 4696 template <typename..., typename T = ::std::string> 4697 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_message_ref() && { 4698 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_message)}; 4699 } 4700 4701 template <typename..., typename T = ::std::vector<::std::int32_t>> 4702 FOLLY_ERASE ::apache::thrift::field_ref<const T&> exception_list_ref() const& { 4703 return {this->exception_list, __isset.at(2), __isset.bit(2)}; 4704 } 4705 4706 template <typename..., typename T = ::std::vector<::std::int32_t>> 4707 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> exception_list_ref() const&& { 4708 return {static_cast<const T&&>(this->exception_list), __isset.at(2), __isset.bit(2)}; 4709 } 4710 4711 template <typename..., typename T = ::std::vector<::std::int32_t>> 4712 FOLLY_ERASE ::apache::thrift::field_ref<T&> exception_list_ref() & { 4713 return {this->exception_list, __isset.at(2), __isset.bit(2)}; 4714 } 4715 4716 template <typename..., typename T = ::std::vector<::std::int32_t>> 4717 FOLLY_ERASE ::apache::thrift::field_ref<T&&> exception_list_ref() && { 4718 return {static_cast<T&&>(this->exception_list), __isset.at(2), __isset.bit(2)}; 4719 } 4720 4721 template <typename..., typename T = ::std::set<::std::int64_t>> 4722 FOLLY_ERASE ::apache::thrift::field_ref<const T&> exception_set_ref() const& { 4723 return {this->exception_set, __isset.at(3), __isset.bit(3)}; 4724 } 4725 4726 template <typename..., typename T = ::std::set<::std::int64_t>> 4727 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> exception_set_ref() const&& { 4728 return {static_cast<const T&&>(this->exception_set), __isset.at(3), __isset.bit(3)}; 4729 } 4730 4731 template <typename..., typename T = ::std::set<::std::int64_t>> 4732 FOLLY_ERASE ::apache::thrift::field_ref<T&> exception_set_ref() & { 4733 return {this->exception_set, __isset.at(3), __isset.bit(3)}; 4734 } 4735 4736 template <typename..., typename T = ::std::set<::std::int64_t>> 4737 FOLLY_ERASE ::apache::thrift::field_ref<T&&> exception_set_ref() && { 4738 return {static_cast<T&&>(this->exception_set), __isset.at(3), __isset.bit(3)}; 4739 } 4740 4741 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4742 FOLLY_ERASE ::apache::thrift::field_ref<const T&> exception_map_ref() const& { 4743 return {this->exception_map, __isset.at(4), __isset.bit(4)}; 4744 } 4745 4746 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4747 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> exception_map_ref() const&& { 4748 return {static_cast<const T&&>(this->exception_map), __isset.at(4), __isset.bit(4)}; 4749 } 4750 4751 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4752 FOLLY_ERASE ::apache::thrift::field_ref<T&> exception_map_ref() & { 4753 return {this->exception_map, __isset.at(4), __isset.bit(4)}; 4754 } 4755 4756 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4757 FOLLY_ERASE ::apache::thrift::field_ref<T&&> exception_map_ref() && { 4758 return {static_cast<T&&>(this->exception_map), __isset.at(4), __isset.bit(4)}; 4759 } 4760 4761 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4762 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_exception_map_ref() const& { 4763 return ::apache::thrift::required_field_ref<const T&>{this->req_exception_map}; 4764 } 4765 4766 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4767 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_exception_map_ref() const&& { 4768 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_exception_map)}; 4769 } 4770 4771 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4772 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_exception_map_ref() & { 4773 return ::apache::thrift::required_field_ref<T&>{this->req_exception_map}; 4774 } 4775 4776 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4777 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_exception_map_ref() && { 4778 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_exception_map)}; 4779 } 4780 4781 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4782 FOLLY_ERASE ::apache::thrift::field_ref<const T&> enum_field_ref() const& { 4783 return {this->enum_field, __isset.at(5), __isset.bit(5)}; 4784 } 4785 4786 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4787 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> enum_field_ref() const&& { 4788 return {static_cast<const T&&>(this->enum_field), __isset.at(5), __isset.bit(5)}; 4789 } 4790 4791 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4792 FOLLY_ERASE ::apache::thrift::field_ref<T&> enum_field_ref() & { 4793 return {this->enum_field, __isset.at(5), __isset.bit(5)}; 4794 } 4795 4796 template <typename..., typename T = ::some::valid::ns::MyEnumA> 4797 FOLLY_ERASE ::apache::thrift::field_ref<T&&> enum_field_ref() && { 4798 return {static_cast<T&&>(this->enum_field), __isset.at(5), __isset.bit(5)}; 4799 } 4800 4801 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4802 FOLLY_ERASE ::apache::thrift::field_ref<const T&> enum_container_ref() const& { 4803 return {this->enum_container, __isset.at(6), __isset.bit(6)}; 4804 } 4805 4806 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4807 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> enum_container_ref() const&& { 4808 return {static_cast<const T&&>(this->enum_container), __isset.at(6), __isset.bit(6)}; 4809 } 4810 4811 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4812 FOLLY_ERASE ::apache::thrift::field_ref<T&> enum_container_ref() & { 4813 return {this->enum_container, __isset.at(6), __isset.bit(6)}; 4814 } 4815 4816 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 4817 FOLLY_ERASE ::apache::thrift::field_ref<T&&> enum_container_ref() && { 4818 return {static_cast<T&&>(this->enum_container), __isset.at(6), __isset.bit(6)}; 4819 } 4820 4821 template <typename..., typename T = ::some::valid::ns::MyStruct> 4822 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_struct_ref() const& { 4823 return {this->a_struct, __isset.at(7), __isset.bit(7)}; 4824 } 4825 4826 template <typename..., typename T = ::some::valid::ns::MyStruct> 4827 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_struct_ref() const&& { 4828 return {static_cast<const T&&>(this->a_struct), __isset.at(7), __isset.bit(7)}; 4829 } 4830 4831 template <typename..., typename T = ::some::valid::ns::MyStruct> 4832 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_struct_ref() & { 4833 return {this->a_struct, __isset.at(7), __isset.bit(7)}; 4834 } 4835 4836 template <typename..., typename T = ::some::valid::ns::MyStruct> 4837 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_struct_ref() && { 4838 return {static_cast<T&&>(this->a_struct), __isset.at(7), __isset.bit(7)}; 4839 } 4840 4841 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4842 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_set_struct_ref() const& { 4843 return {this->a_set_struct, __isset.at(8), __isset.bit(8)}; 4844 } 4845 4846 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4847 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_set_struct_ref() const&& { 4848 return {static_cast<const T&&>(this->a_set_struct), __isset.at(8), __isset.bit(8)}; 4849 } 4850 4851 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4852 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_set_struct_ref() & { 4853 return {this->a_set_struct, __isset.at(8), __isset.bit(8)}; 4854 } 4855 4856 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 4857 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_set_struct_ref() && { 4858 return {static_cast<T&&>(this->a_set_struct), __isset.at(8), __isset.bit(8)}; 4859 } 4860 4861 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4862 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_union_list_ref() const& { 4863 return {this->a_union_list, __isset.at(9), __isset.bit(9)}; 4864 } 4865 4866 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4867 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_union_list_ref() const&& { 4868 return {static_cast<const T&&>(this->a_union_list), __isset.at(9), __isset.bit(9)}; 4869 } 4870 4871 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4872 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_union_list_ref() & { 4873 return {this->a_union_list, __isset.at(9), __isset.bit(9)}; 4874 } 4875 4876 template <typename..., typename T = ::std::vector<::some::valid::ns::SimpleUnion>> 4877 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_union_list_ref() && { 4878 return {static_cast<T&&>(this->a_union_list), __isset.at(9), __isset.bit(9)}; 4879 } 4880 4881 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4882 FOLLY_ERASE ::apache::thrift::field_ref<const T&> union_typedef_ref() const& { 4883 return {this->union_typedef, __isset.at(10), __isset.bit(10)}; 4884 } 4885 4886 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4887 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> union_typedef_ref() const&& { 4888 return {static_cast<const T&&>(this->union_typedef), __isset.at(10), __isset.bit(10)}; 4889 } 4890 4891 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4892 FOLLY_ERASE ::apache::thrift::field_ref<T&> union_typedef_ref() & { 4893 return {this->union_typedef, __isset.at(10), __isset.bit(10)}; 4894 } 4895 4896 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 4897 FOLLY_ERASE ::apache::thrift::field_ref<T&&> union_typedef_ref() && { 4898 return {static_cast<T&&>(this->union_typedef), __isset.at(10), __isset.bit(10)}; 4899 } 4900 4901 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4902 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_union_typedef_list_ref() const& { 4903 return {this->a_union_typedef_list, __isset.at(11), __isset.bit(11)}; 4904 } 4905 4906 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4907 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_union_typedef_list_ref() const&& { 4908 return {static_cast<const T&&>(this->a_union_typedef_list), __isset.at(11), __isset.bit(11)}; 4909 } 4910 4911 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4912 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_union_typedef_list_ref() & { 4913 return {this->a_union_typedef_list, __isset.at(11), __isset.bit(11)}; 4914 } 4915 4916 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 4917 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_union_typedef_list_ref() && { 4918 return {static_cast<T&&>(this->a_union_typedef_list), __isset.at(11), __isset.bit(11)}; 4919 } 4920 4921 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4922 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyCustomField_ref() const& { 4923 return {this->MyCustomField, __isset.at(12), __isset.bit(12)}; 4924 } 4925 4926 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4927 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyCustomField_ref() const&& { 4928 return {static_cast<const T&&>(this->MyCustomField), __isset.at(12), __isset.bit(12)}; 4929 } 4930 4931 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4932 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyCustomField_ref() & { 4933 return {this->MyCustomField, __isset.at(12), __isset.bit(12)}; 4934 } 4935 4936 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4937 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyCustomField_ref() && { 4938 return {static_cast<T&&>(this->MyCustomField), __isset.at(12), __isset.bit(12)}; 4939 } 4940 4941 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4942 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> MyOptCustomField_ref() const& { 4943 return {this->MyOptCustomField, __isset.at(13), __isset.bit(13)}; 4944 } 4945 4946 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4947 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> MyOptCustomField_ref() const&& { 4948 return {static_cast<const T&&>(this->MyOptCustomField), __isset.at(13), __isset.bit(13)}; 4949 } 4950 4951 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4952 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> MyOptCustomField_ref() & { 4953 return {this->MyOptCustomField, __isset.at(13), __isset.bit(13)}; 4954 } 4955 4956 template <typename..., typename T = ::some::valid::ns::CustomProtocolType> 4957 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> MyOptCustomField_ref() && { 4958 return {static_cast<T&&>(this->MyOptCustomField), __isset.at(13), __isset.bit(13)}; 4959 } 4960 4961 ::std::int32_t get_code() const { 4962 return code; 4963 } 4964 4965 [[deprecated("Use `FOO.code_ref() = BAR;` instead of `FOO.set_code(BAR);`")]] 4966 ::std::int32_t& set_code(::std::int32_t code_) { 4967 code_ref() = code_; 4968 return code; 4969 } 4970 4971 ::std::int32_t get_req_code() const { 4972 return req_code; 4973 } 4974 4975 [[deprecated("Use `FOO.req_code_ref() = BAR;` instead of `FOO.set_req_code(BAR);`")]] 4976 ::std::int32_t& set_req_code(::std::int32_t req_code_) { 4977 req_code_ref() = req_code_; 4978 return req_code; 4979 } 4980 4981 const ::std::string& get_message2() const& { 4982 return message2; 4983 } 4984 4985 ::std::string get_message2() && { 4986 return std::move(message2); 4987 } 4988 4989 template <typename T_AnException_message2_struct_setter = ::std::string> 4990 [[deprecated("Use `FOO.message2_ref() = BAR;` instead of `FOO.set_message2(BAR);`")]] 4991 ::std::string& set_message2(T_AnException_message2_struct_setter&& message2_) { 4992 message2_ref() = std::forward<T_AnException_message2_struct_setter>(message2_); 4993 return message2; 4994 } 4995 4996 const ::std::string& get_req_message() const& { 4997 return req_message; 4998 } 4999 5000 ::std::string get_req_message() && { 5001 return std::move(req_message); 5002 } 5003 5004 template <typename T_AnException_req_message_struct_setter = ::std::string> 5005 [[deprecated("Use `FOO.req_message_ref() = BAR;` instead of `FOO.set_req_message(BAR);`")]] 5006 ::std::string& set_req_message(T_AnException_req_message_struct_setter&& req_message_) { 5007 req_message_ref() = std::forward<T_AnException_req_message_struct_setter>(req_message_); 5008 return req_message; 5009 } 5010 const ::std::vector<::std::int32_t>& get_exception_list() const&; 5011 ::std::vector<::std::int32_t> get_exception_list() &&; 5012 5013 template <typename T_AnException_exception_list_struct_setter = ::std::vector<::std::int32_t>> 5014 [[deprecated("Use `FOO.exception_list_ref() = BAR;` instead of `FOO.set_exception_list(BAR);`")]] 5015 ::std::vector<::std::int32_t>& set_exception_list(T_AnException_exception_list_struct_setter&& exception_list_) { 5016 exception_list_ref() = std::forward<T_AnException_exception_list_struct_setter>(exception_list_); 5017 return exception_list; 5018 } 5019 const ::std::set<::std::int64_t>& get_exception_set() const&; 5020 ::std::set<::std::int64_t> get_exception_set() &&; 5021 5022 template <typename T_AnException_exception_set_struct_setter = ::std::set<::std::int64_t>> 5023 [[deprecated("Use `FOO.exception_set_ref() = BAR;` instead of `FOO.set_exception_set(BAR);`")]] 5024 ::std::set<::std::int64_t>& set_exception_set(T_AnException_exception_set_struct_setter&& exception_set_) { 5025 exception_set_ref() = std::forward<T_AnException_exception_set_struct_setter>(exception_set_); 5026 return exception_set; 5027 } 5028 const ::std::map<::std::string, ::std::int32_t>& get_exception_map() const&; 5029 ::std::map<::std::string, ::std::int32_t> get_exception_map() &&; 5030 5031 template <typename T_AnException_exception_map_struct_setter = ::std::map<::std::string, ::std::int32_t>> 5032 [[deprecated("Use `FOO.exception_map_ref() = BAR;` instead of `FOO.set_exception_map(BAR);`")]] 5033 ::std::map<::std::string, ::std::int32_t>& set_exception_map(T_AnException_exception_map_struct_setter&& exception_map_) { 5034 exception_map_ref() = std::forward<T_AnException_exception_map_struct_setter>(exception_map_); 5035 return exception_map; 5036 } 5037 const ::std::map<::std::string, ::std::int32_t>& get_req_exception_map() const&; 5038 ::std::map<::std::string, ::std::int32_t> get_req_exception_map() &&; 5039 5040 template <typename T_AnException_req_exception_map_struct_setter = ::std::map<::std::string, ::std::int32_t>> 5041 [[deprecated("Use `FOO.req_exception_map_ref() = BAR;` instead of `FOO.set_req_exception_map(BAR);`")]] 5042 ::std::map<::std::string, ::std::int32_t>& set_req_exception_map(T_AnException_req_exception_map_struct_setter&& req_exception_map_) { 5043 req_exception_map_ref() = std::forward<T_AnException_req_exception_map_struct_setter>(req_exception_map_); 5044 return req_exception_map; 5045 } 5046 5047 ::some::valid::ns::MyEnumA get_enum_field() const { 5048 return enum_field; 5049 } 5050 5051 [[deprecated("Use `FOO.enum_field_ref() = BAR;` instead of `FOO.set_enum_field(BAR);`")]] 5052 ::some::valid::ns::MyEnumA& set_enum_field(::some::valid::ns::MyEnumA enum_field_) { 5053 enum_field_ref() = enum_field_; 5054 return enum_field; 5055 } 5056 const ::std::vector<::some::valid::ns::MyEnumA>& get_enum_container() const&; 5057 ::std::vector<::some::valid::ns::MyEnumA> get_enum_container() &&; 5058 5059 template <typename T_AnException_enum_container_struct_setter = ::std::vector<::some::valid::ns::MyEnumA>> 5060 [[deprecated("Use `FOO.enum_container_ref() = BAR;` instead of `FOO.set_enum_container(BAR);`")]] 5061 ::std::vector<::some::valid::ns::MyEnumA>& set_enum_container(T_AnException_enum_container_struct_setter&& enum_container_) { 5062 enum_container_ref() = std::forward<T_AnException_enum_container_struct_setter>(enum_container_); 5063 return enum_container; 5064 } 5065 const ::some::valid::ns::MyStruct& get_a_struct() const&; 5066 ::some::valid::ns::MyStruct get_a_struct() &&; 5067 5068 template <typename T_AnException_a_struct_struct_setter = ::some::valid::ns::MyStruct> 5069 [[deprecated("Use `FOO.a_struct_ref() = BAR;` instead of `FOO.set_a_struct(BAR);`")]] 5070 ::some::valid::ns::MyStruct& set_a_struct(T_AnException_a_struct_struct_setter&& a_struct_) { 5071 a_struct_ref() = std::forward<T_AnException_a_struct_struct_setter>(a_struct_); 5072 return a_struct; 5073 } 5074 const ::std::set<::some::valid::ns::MyStruct>& get_a_set_struct() const&; 5075 ::std::set<::some::valid::ns::MyStruct> get_a_set_struct() &&; 5076 5077 template <typename T_AnException_a_set_struct_struct_setter = ::std::set<::some::valid::ns::MyStruct>> 5078 [[deprecated("Use `FOO.a_set_struct_ref() = BAR;` instead of `FOO.set_a_set_struct(BAR);`")]] 5079 ::std::set<::some::valid::ns::MyStruct>& set_a_set_struct(T_AnException_a_set_struct_struct_setter&& a_set_struct_) { 5080 a_set_struct_ref() = std::forward<T_AnException_a_set_struct_struct_setter>(a_set_struct_); 5081 return a_set_struct; 5082 } 5083 const ::std::vector<::some::valid::ns::SimpleUnion>& get_a_union_list() const&; 5084 ::std::vector<::some::valid::ns::SimpleUnion> get_a_union_list() &&; 5085 5086 template <typename T_AnException_a_union_list_struct_setter = ::std::vector<::some::valid::ns::SimpleUnion>> 5087 [[deprecated("Use `FOO.a_union_list_ref() = BAR;` instead of `FOO.set_a_union_list(BAR);`")]] 5088 ::std::vector<::some::valid::ns::SimpleUnion>& set_a_union_list(T_AnException_a_union_list_struct_setter&& a_union_list_) { 5089 a_union_list_ref() = std::forward<T_AnException_a_union_list_struct_setter>(a_union_list_); 5090 return a_union_list; 5091 } 5092 const ::some::valid::ns::unionTypeDef& get_union_typedef() const&; 5093 ::some::valid::ns::unionTypeDef get_union_typedef() &&; 5094 5095 template <typename T_AnException_union_typedef_struct_setter = ::some::valid::ns::unionTypeDef> 5096 [[deprecated("Use `FOO.union_typedef_ref() = BAR;` instead of `FOO.set_union_typedef(BAR);`")]] 5097 ::some::valid::ns::unionTypeDef& set_union_typedef(T_AnException_union_typedef_struct_setter&& union_typedef_) { 5098 union_typedef_ref() = std::forward<T_AnException_union_typedef_struct_setter>(union_typedef_); 5099 return union_typedef; 5100 } 5101 const ::std::vector<::some::valid::ns::unionTypeDef>& get_a_union_typedef_list() const&; 5102 ::std::vector<::some::valid::ns::unionTypeDef> get_a_union_typedef_list() &&; 5103 5104 template <typename T_AnException_a_union_typedef_list_struct_setter = ::std::vector<::some::valid::ns::unionTypeDef>> 5105 [[deprecated("Use `FOO.a_union_typedef_list_ref() = BAR;` instead of `FOO.set_a_union_typedef_list(BAR);`")]] 5106 ::std::vector<::some::valid::ns::unionTypeDef>& set_a_union_typedef_list(T_AnException_a_union_typedef_list_struct_setter&& a_union_typedef_list_) { 5107 a_union_typedef_list_ref() = std::forward<T_AnException_a_union_typedef_list_struct_setter>(a_union_typedef_list_); 5108 return a_union_typedef_list; 5109 } 5110 5111 template <class Protocol_> 5112 uint32_t read(Protocol_* iprot); 5113 template <class Protocol_> 5114 uint32_t serializedSize(Protocol_ const* prot_) const; 5115 template <class Protocol_> 5116 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 5117 template <class Protocol_> 5118 uint32_t write(Protocol_* prot_) const; 5119 5120 const char* what() const noexcept override { 5121 return message2.c_str(); 5122 } 5123 5124 private: 5125 template <class Protocol_> 5126 void readNoXfer(Protocol_* iprot); 5127 5128 friend class ::apache::thrift::Cpp2Ops<AnException>; 5129 friend void swap(AnException& a, AnException& b); 5130 }; 5131 5132 template <class Protocol_> 5133 uint32_t AnException::read(Protocol_* iprot) { 5134 auto _xferStart = iprot->getCursorPosition(); 5135 readNoXfer(iprot); 5136 return iprot->getCursorPosition() - _xferStart; 5137 } 5138 5139 }}} // some::valid::ns 5140 namespace some { namespace valid { namespace ns { 5141 class FOLLY_EXPORT AnotherException : public apache::thrift::TException { 5142 private: 5143 friend struct ::apache::thrift::detail::st::struct_private_access; 5144 5145 // used by a static_assert in the corresponding source 5146 static constexpr bool __fbthrift_cpp2_gen_json = true; 5147 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 5148 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 5149 5150 void __fbthrift_clear(); 5151 static constexpr ::apache::thrift::ExceptionKind __fbthrift_cpp2_gen_exception_kind = 5152 ::apache::thrift::ExceptionKind::UNSPECIFIED; 5153 static constexpr ::apache::thrift::ExceptionSafety __fbthrift_cpp2_gen_exception_safety = 5154 ::apache::thrift::ExceptionSafety::UNSPECIFIED; 5155 static constexpr ::apache::thrift::ExceptionBlame __fbthrift_cpp2_gen_exception_blame = 5156 ::apache::thrift::ExceptionBlame::UNSPECIFIED; 5157 5158 public: 5159 using __fbthrift_cpp2_type = AnotherException; 5160 static constexpr bool __fbthrift_cpp2_is_union = 5161 false; 5162 5163 5164 public: 5165 5166 AnotherException(); 5167 5168 // FragileConstructor for use in initialization lists only. 5169 [[deprecated("This constructor is deprecated")]] 5170 AnotherException(apache::thrift::FragileConstructor, ::std::int32_t code__arg, ::std::int32_t req_code__arg, ::std::string message__arg); 5171 5172 AnotherException(AnotherException&&) noexcept; 5173 5174 AnotherException(const AnotherException& src); 5175 5176 5177 AnotherException& operator=(AnotherException&&) noexcept; 5178 AnotherException& operator=(const AnotherException& src); 5179 5180 virtual ~AnotherException(); 5181 5182 private: 5183 ::std::int32_t code; 5184 public: 5185 ::std::int32_t req_code; 5186 private: 5187 ::std::string message; 5188 private: 5189 apache::thrift::detail::isset_bitset<2, false> __isset; 5190 5191 public: 5192 5193 bool operator==(const AnotherException&) const; 5194 bool operator<(const AnotherException&) const; 5195 5196 template <typename..., typename T = ::std::int32_t> 5197 FOLLY_ERASE ::apache::thrift::field_ref<const T&> code_ref() const& { 5198 return {this->code, __isset.at(0), __isset.bit(0)}; 5199 } 5200 5201 template <typename..., typename T = ::std::int32_t> 5202 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> code_ref() const&& { 5203 return {static_cast<const T&&>(this->code), __isset.at(0), __isset.bit(0)}; 5204 } 5205 5206 template <typename..., typename T = ::std::int32_t> 5207 FOLLY_ERASE ::apache::thrift::field_ref<T&> code_ref() & { 5208 return {this->code, __isset.at(0), __isset.bit(0)}; 5209 } 5210 5211 template <typename..., typename T = ::std::int32_t> 5212 FOLLY_ERASE ::apache::thrift::field_ref<T&&> code_ref() && { 5213 return {static_cast<T&&>(this->code), __isset.at(0), __isset.bit(0)}; 5214 } 5215 5216 template <typename..., typename T = ::std::int32_t> 5217 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_code_ref() const& { 5218 return ::apache::thrift::required_field_ref<const T&>{this->req_code}; 5219 } 5220 5221 template <typename..., typename T = ::std::int32_t> 5222 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_code_ref() const&& { 5223 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_code)}; 5224 } 5225 5226 template <typename..., typename T = ::std::int32_t> 5227 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_code_ref() & { 5228 return ::apache::thrift::required_field_ref<T&>{this->req_code}; 5229 } 5230 5231 template <typename..., typename T = ::std::int32_t> 5232 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_code_ref() && { 5233 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_code)}; 5234 } 5235 5236 template <typename..., typename T = ::std::string> 5237 FOLLY_ERASE ::apache::thrift::field_ref<const T&> message_ref() const& { 5238 return {this->message, __isset.at(1), __isset.bit(1)}; 5239 } 5240 5241 template <typename..., typename T = ::std::string> 5242 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> message_ref() const&& { 5243 return {static_cast<const T&&>(this->message), __isset.at(1), __isset.bit(1)}; 5244 } 5245 5246 template <typename..., typename T = ::std::string> 5247 FOLLY_ERASE ::apache::thrift::field_ref<T&> message_ref() & { 5248 return {this->message, __isset.at(1), __isset.bit(1)}; 5249 } 5250 5251 template <typename..., typename T = ::std::string> 5252 FOLLY_ERASE ::apache::thrift::field_ref<T&&> message_ref() && { 5253 return {static_cast<T&&>(this->message), __isset.at(1), __isset.bit(1)}; 5254 } 5255 5256 ::std::int32_t get_code() const { 5257 return code; 5258 } 5259 5260 [[deprecated("Use `FOO.code_ref() = BAR;` instead of `FOO.set_code(BAR);`")]] 5261 ::std::int32_t& set_code(::std::int32_t code_) { 5262 code_ref() = code_; 5263 return code; 5264 } 5265 5266 ::std::int32_t get_req_code() const { 5267 return req_code; 5268 } 5269 5270 [[deprecated("Use `FOO.req_code_ref() = BAR;` instead of `FOO.set_req_code(BAR);`")]] 5271 ::std::int32_t& set_req_code(::std::int32_t req_code_) { 5272 req_code_ref() = req_code_; 5273 return req_code; 5274 } 5275 5276 const ::std::string& get_message() const& { 5277 return message; 5278 } 5279 5280 ::std::string get_message() && { 5281 return std::move(message); 5282 } 5283 5284 template <typename T_AnotherException_message_struct_setter = ::std::string> 5285 [[deprecated("Use `FOO.message_ref() = BAR;` instead of `FOO.set_message(BAR);`")]] 5286 ::std::string& set_message(T_AnotherException_message_struct_setter&& message_) { 5287 message_ref() = std::forward<T_AnotherException_message_struct_setter>(message_); 5288 return message; 5289 } 5290 5291 template <class Protocol_> 5292 uint32_t read(Protocol_* iprot); 5293 template <class Protocol_> 5294 uint32_t serializedSize(Protocol_ const* prot_) const; 5295 template <class Protocol_> 5296 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 5297 template <class Protocol_> 5298 uint32_t write(Protocol_* prot_) const; 5299 5300 const char* what() const noexcept override { 5301 return "::some::valid::ns::AnotherException"; 5302 } 5303 5304 private: 5305 template <class Protocol_> 5306 void readNoXfer(Protocol_* iprot); 5307 5308 friend class ::apache::thrift::Cpp2Ops<AnotherException>; 5309 friend void swap(AnotherException& a, AnotherException& b); 5310 }; 5311 5312 template <class Protocol_> 5313 uint32_t AnotherException::read(Protocol_* iprot) { 5314 auto _xferStart = iprot->getCursorPosition(); 5315 readNoXfer(iprot); 5316 return iprot->getCursorPosition() - _xferStart; 5317 } 5318 5319 }}} // some::valid::ns 5320 namespace some { namespace valid { namespace ns { 5321 class containerStruct final { 5322 private: 5323 friend struct ::apache::thrift::detail::st::struct_private_access; 5324 5325 // used by a static_assert in the corresponding source 5326 static constexpr bool __fbthrift_cpp2_gen_json = true; 5327 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 5328 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 5329 5330 void __fbthrift_clear(); 5331 5332 public: 5333 using __fbthrift_cpp2_type = containerStruct; 5334 static constexpr bool __fbthrift_cpp2_is_union = 5335 false; 5336 5337 5338 public: 5339 5340 containerStruct(); 5341 5342 // FragileConstructor for use in initialization lists only. 5343 [[deprecated("This constructor is deprecated")]] 5344 containerStruct(apache::thrift::FragileConstructor, bool fieldA__arg, bool req_fieldA__arg, bool opt_fieldA__arg, ::std::map<::std::string, bool> fieldB__arg, ::std::map<::std::string, bool> req_fieldB__arg, ::std::map<::std::string, bool> opt_fieldB__arg, ::std::set<::std::int32_t> fieldC__arg, ::std::set<::std::int32_t> req_fieldC__arg, ::std::set<::std::int32_t> opt_fieldC__arg, ::std::string fieldD__arg, ::std::string fieldE__arg, ::std::string req_fieldE__arg, ::std::string opt_fieldE__arg, ::std::vector<::std::vector<::std::int32_t>> fieldF__arg, ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>> fieldG__arg, ::std::vector<::std::set<::std::int32_t>> fieldH__arg, bool fieldI__arg, ::std::map<::std::string, ::std::vector<::std::int32_t>> fieldJ__arg, ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>> fieldK__arg, ::std::set<::std::set<::std::set<bool>>> fieldL__arg, ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>> fieldM__arg, ::some::valid::ns::simpleTypeDef fieldN__arg, ::some::valid::ns::complexStructTypeDef fieldO__arg, ::std::vector<::some::valid::ns::mostComplexTypeDef> fieldP__arg, ::some::valid::ns::MyEnumA fieldQ__arg, ::some::valid::ns::MyEnumA fieldR__arg, ::some::valid::ns::MyEnumA req_fieldR__arg, ::some::valid::ns::MyEnumA opt_fieldR__arg, ::some::valid::ns::MyEnumA fieldS__arg, ::std::vector<::some::valid::ns::MyEnumA> fieldT__arg, ::std::vector<::some::valid::ns::MyEnumA> fieldU__arg, ::some::valid::ns::MyStruct fieldV__arg, ::some::valid::ns::MyStruct req_fieldV__arg, ::some::valid::ns::MyStruct opt_fieldV__arg, ::std::set<::some::valid::ns::MyStruct> fieldW__arg, ::some::valid::ns::ComplexUnion fieldX__arg, ::some::valid::ns::ComplexUnion req_fieldX__arg, ::some::valid::ns::ComplexUnion opt_fieldX__arg, ::std::vector<::some::valid::ns::ComplexUnion> fieldY__arg, ::some::valid::ns::unionTypeDef fieldZ__arg, ::std::vector<::some::valid::ns::unionTypeDef> fieldAA__arg, ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC> fieldAB__arg, ::some::valid::ns::MyEnumB fieldAC__arg, ::a::different::ns::AnEnum fieldAD__arg, ::std::map<::std::string, ::std::int32_t> fieldAE__arg, ::some::valid::ns::IndirectionD fieldSD__arg); 5345 5346 containerStruct(containerStruct&&) = default; 5347 5348 5349 containerStruct& operator=(containerStruct&&) = default; 5350 5351 ~containerStruct(); 5352 5353 private: 5354 bool fieldA; 5355 public: 5356 bool req_fieldA; 5357 private: 5358 bool opt_fieldA; 5359 private: 5360 ::std::map<::std::string, bool> fieldB; 5361 public: 5362 ::std::map<::std::string, bool> req_fieldB; 5363 private: 5364 ::std::map<::std::string, bool> opt_fieldB; 5365 private: 5366 ::std::set<::std::int32_t> fieldC; 5367 public: 5368 ::std::set<::std::int32_t> req_fieldC; 5369 private: 5370 ::std::set<::std::int32_t> opt_fieldC; 5371 private: 5372 ::std::string fieldD; 5373 private: 5374 ::std::string fieldE; 5375 public: 5376 ::std::string req_fieldE; 5377 private: 5378 ::std::string opt_fieldE; 5379 private: 5380 ::std::vector<::std::vector<::std::int32_t>> fieldF; 5381 private: 5382 ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>> fieldG; 5383 private: 5384 ::std::vector<::std::set<::std::int32_t>> fieldH; 5385 private: 5386 bool fieldI; 5387 private: 5388 ::std::map<::std::string, ::std::vector<::std::int32_t>> fieldJ; 5389 private: 5390 ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>> fieldK; 5391 private: 5392 ::std::set<::std::set<::std::set<bool>>> fieldL; 5393 private: 5394 ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>> fieldM; 5395 private: 5396 ::some::valid::ns::simpleTypeDef fieldN; 5397 private: 5398 ::some::valid::ns::complexStructTypeDef fieldO; 5399 private: 5400 ::std::vector<::some::valid::ns::mostComplexTypeDef> fieldP; 5401 private: 5402 ::some::valid::ns::MyEnumA fieldQ; 5403 private: 5404 ::some::valid::ns::MyEnumA fieldR; 5405 public: 5406 ::some::valid::ns::MyEnumA req_fieldR; 5407 private: 5408 ::some::valid::ns::MyEnumA opt_fieldR; 5409 private: 5410 ::some::valid::ns::MyEnumA fieldS; 5411 private: 5412 ::std::vector<::some::valid::ns::MyEnumA> fieldT; 5413 private: 5414 ::std::vector<::some::valid::ns::MyEnumA> fieldU; 5415 private: 5416 ::some::valid::ns::MyStruct fieldV; 5417 public: 5418 ::some::valid::ns::MyStruct req_fieldV; 5419 private: 5420 ::some::valid::ns::MyStruct opt_fieldV; 5421 private: 5422 ::std::set<::some::valid::ns::MyStruct> fieldW; 5423 private: 5424 ::some::valid::ns::ComplexUnion fieldX; 5425 public: 5426 ::some::valid::ns::ComplexUnion req_fieldX; 5427 private: 5428 ::some::valid::ns::ComplexUnion opt_fieldX; 5429 private: 5430 ::std::vector<::some::valid::ns::ComplexUnion> fieldY; 5431 private: 5432 ::some::valid::ns::unionTypeDef fieldZ; 5433 private: 5434 ::std::vector<::some::valid::ns::unionTypeDef> fieldAA; 5435 private: 5436 ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC> fieldAB; 5437 private: 5438 ::some::valid::ns::MyEnumB fieldAC; 5439 private: 5440 ::a::different::ns::AnEnum fieldAD; 5441 private: 5442 ::std::map<::std::string, ::std::int32_t> fieldAE; 5443 private: 5444 ::some::valid::ns::IndirectionD fieldSD; 5445 private: 5446 apache::thrift::detail::isset_bitset<39, false> __isset; 5447 5448 public: 5449 5450 bool operator==(const containerStruct&) const; 5451 bool operator<(const containerStruct&) const; 5452 5453 template <typename..., typename T = bool> 5454 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldA_ref() const& { 5455 return {this->fieldA, __isset.at(0), __isset.bit(0)}; 5456 } 5457 5458 template <typename..., typename T = bool> 5459 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldA_ref() const&& { 5460 return {static_cast<const T&&>(this->fieldA), __isset.at(0), __isset.bit(0)}; 5461 } 5462 5463 template <typename..., typename T = bool> 5464 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldA_ref() & { 5465 return {this->fieldA, __isset.at(0), __isset.bit(0)}; 5466 } 5467 5468 template <typename..., typename T = bool> 5469 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldA_ref() && { 5470 return {static_cast<T&&>(this->fieldA), __isset.at(0), __isset.bit(0)}; 5471 } 5472 5473 template <typename..., typename T = bool> 5474 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldA_ref() const& { 5475 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldA}; 5476 } 5477 5478 template <typename..., typename T = bool> 5479 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldA_ref() const&& { 5480 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldA)}; 5481 } 5482 5483 template <typename..., typename T = bool> 5484 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldA_ref() & { 5485 return ::apache::thrift::required_field_ref<T&>{this->req_fieldA}; 5486 } 5487 5488 template <typename..., typename T = bool> 5489 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldA_ref() && { 5490 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldA)}; 5491 } 5492 5493 template <typename..., typename T = bool> 5494 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldA_ref() const& { 5495 return {this->opt_fieldA, __isset.at(1), __isset.bit(1)}; 5496 } 5497 5498 template <typename..., typename T = bool> 5499 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldA_ref() const&& { 5500 return {static_cast<const T&&>(this->opt_fieldA), __isset.at(1), __isset.bit(1)}; 5501 } 5502 5503 template <typename..., typename T = bool> 5504 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldA_ref() & { 5505 return {this->opt_fieldA, __isset.at(1), __isset.bit(1)}; 5506 } 5507 5508 template <typename..., typename T = bool> 5509 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldA_ref() && { 5510 return {static_cast<T&&>(this->opt_fieldA), __isset.at(1), __isset.bit(1)}; 5511 } 5512 5513 template <typename..., typename T = ::std::map<::std::string, bool>> 5514 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldB_ref() const& { 5515 return {this->fieldB, __isset.at(2), __isset.bit(2)}; 5516 } 5517 5518 template <typename..., typename T = ::std::map<::std::string, bool>> 5519 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldB_ref() const&& { 5520 return {static_cast<const T&&>(this->fieldB), __isset.at(2), __isset.bit(2)}; 5521 } 5522 5523 template <typename..., typename T = ::std::map<::std::string, bool>> 5524 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldB_ref() & { 5525 return {this->fieldB, __isset.at(2), __isset.bit(2)}; 5526 } 5527 5528 template <typename..., typename T = ::std::map<::std::string, bool>> 5529 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldB_ref() && { 5530 return {static_cast<T&&>(this->fieldB), __isset.at(2), __isset.bit(2)}; 5531 } 5532 5533 template <typename..., typename T = ::std::map<::std::string, bool>> 5534 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldB_ref() const& { 5535 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldB}; 5536 } 5537 5538 template <typename..., typename T = ::std::map<::std::string, bool>> 5539 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldB_ref() const&& { 5540 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldB)}; 5541 } 5542 5543 template <typename..., typename T = ::std::map<::std::string, bool>> 5544 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldB_ref() & { 5545 return ::apache::thrift::required_field_ref<T&>{this->req_fieldB}; 5546 } 5547 5548 template <typename..., typename T = ::std::map<::std::string, bool>> 5549 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldB_ref() && { 5550 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldB)}; 5551 } 5552 5553 template <typename..., typename T = ::std::map<::std::string, bool>> 5554 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldB_ref() const& { 5555 return {this->opt_fieldB, __isset.at(3), __isset.bit(3)}; 5556 } 5557 5558 template <typename..., typename T = ::std::map<::std::string, bool>> 5559 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldB_ref() const&& { 5560 return {static_cast<const T&&>(this->opt_fieldB), __isset.at(3), __isset.bit(3)}; 5561 } 5562 5563 template <typename..., typename T = ::std::map<::std::string, bool>> 5564 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldB_ref() & { 5565 return {this->opt_fieldB, __isset.at(3), __isset.bit(3)}; 5566 } 5567 5568 template <typename..., typename T = ::std::map<::std::string, bool>> 5569 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldB_ref() && { 5570 return {static_cast<T&&>(this->opt_fieldB), __isset.at(3), __isset.bit(3)}; 5571 } 5572 5573 template <typename..., typename T = ::std::set<::std::int32_t>> 5574 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldC_ref() const& { 5575 return {this->fieldC, __isset.at(4), __isset.bit(4)}; 5576 } 5577 5578 template <typename..., typename T = ::std::set<::std::int32_t>> 5579 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldC_ref() const&& { 5580 return {static_cast<const T&&>(this->fieldC), __isset.at(4), __isset.bit(4)}; 5581 } 5582 5583 template <typename..., typename T = ::std::set<::std::int32_t>> 5584 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldC_ref() & { 5585 return {this->fieldC, __isset.at(4), __isset.bit(4)}; 5586 } 5587 5588 template <typename..., typename T = ::std::set<::std::int32_t>> 5589 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldC_ref() && { 5590 return {static_cast<T&&>(this->fieldC), __isset.at(4), __isset.bit(4)}; 5591 } 5592 5593 template <typename..., typename T = ::std::set<::std::int32_t>> 5594 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldC_ref() const& { 5595 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldC}; 5596 } 5597 5598 template <typename..., typename T = ::std::set<::std::int32_t>> 5599 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldC_ref() const&& { 5600 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldC)}; 5601 } 5602 5603 template <typename..., typename T = ::std::set<::std::int32_t>> 5604 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldC_ref() & { 5605 return ::apache::thrift::required_field_ref<T&>{this->req_fieldC}; 5606 } 5607 5608 template <typename..., typename T = ::std::set<::std::int32_t>> 5609 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldC_ref() && { 5610 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldC)}; 5611 } 5612 5613 template <typename..., typename T = ::std::set<::std::int32_t>> 5614 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldC_ref() const& { 5615 return {this->opt_fieldC, __isset.at(5), __isset.bit(5)}; 5616 } 5617 5618 template <typename..., typename T = ::std::set<::std::int32_t>> 5619 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldC_ref() const&& { 5620 return {static_cast<const T&&>(this->opt_fieldC), __isset.at(5), __isset.bit(5)}; 5621 } 5622 5623 template <typename..., typename T = ::std::set<::std::int32_t>> 5624 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldC_ref() & { 5625 return {this->opt_fieldC, __isset.at(5), __isset.bit(5)}; 5626 } 5627 5628 template <typename..., typename T = ::std::set<::std::int32_t>> 5629 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldC_ref() && { 5630 return {static_cast<T&&>(this->opt_fieldC), __isset.at(5), __isset.bit(5)}; 5631 } 5632 5633 template <typename..., typename T = ::std::string> 5634 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldD_ref() const& { 5635 return {this->fieldD, __isset.at(6), __isset.bit(6)}; 5636 } 5637 5638 template <typename..., typename T = ::std::string> 5639 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldD_ref() const&& { 5640 return {static_cast<const T&&>(this->fieldD), __isset.at(6), __isset.bit(6)}; 5641 } 5642 5643 template <typename..., typename T = ::std::string> 5644 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldD_ref() & { 5645 return {this->fieldD, __isset.at(6), __isset.bit(6)}; 5646 } 5647 5648 template <typename..., typename T = ::std::string> 5649 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldD_ref() && { 5650 return {static_cast<T&&>(this->fieldD), __isset.at(6), __isset.bit(6)}; 5651 } 5652 5653 template <typename..., typename T = ::std::string> 5654 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldE_ref() const& { 5655 return {this->fieldE, __isset.at(7), __isset.bit(7)}; 5656 } 5657 5658 template <typename..., typename T = ::std::string> 5659 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldE_ref() const&& { 5660 return {static_cast<const T&&>(this->fieldE), __isset.at(7), __isset.bit(7)}; 5661 } 5662 5663 template <typename..., typename T = ::std::string> 5664 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldE_ref() & { 5665 return {this->fieldE, __isset.at(7), __isset.bit(7)}; 5666 } 5667 5668 template <typename..., typename T = ::std::string> 5669 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldE_ref() && { 5670 return {static_cast<T&&>(this->fieldE), __isset.at(7), __isset.bit(7)}; 5671 } 5672 5673 template <typename..., typename T = ::std::string> 5674 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldE_ref() const& { 5675 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldE}; 5676 } 5677 5678 template <typename..., typename T = ::std::string> 5679 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldE_ref() const&& { 5680 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldE)}; 5681 } 5682 5683 template <typename..., typename T = ::std::string> 5684 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldE_ref() & { 5685 return ::apache::thrift::required_field_ref<T&>{this->req_fieldE}; 5686 } 5687 5688 template <typename..., typename T = ::std::string> 5689 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldE_ref() && { 5690 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldE)}; 5691 } 5692 5693 template <typename..., typename T = ::std::string> 5694 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldE_ref() const& { 5695 return {this->opt_fieldE, __isset.at(8), __isset.bit(8)}; 5696 } 5697 5698 template <typename..., typename T = ::std::string> 5699 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldE_ref() const&& { 5700 return {static_cast<const T&&>(this->opt_fieldE), __isset.at(8), __isset.bit(8)}; 5701 } 5702 5703 template <typename..., typename T = ::std::string> 5704 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldE_ref() & { 5705 return {this->opt_fieldE, __isset.at(8), __isset.bit(8)}; 5706 } 5707 5708 template <typename..., typename T = ::std::string> 5709 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldE_ref() && { 5710 return {static_cast<T&&>(this->opt_fieldE), __isset.at(8), __isset.bit(8)}; 5711 } 5712 5713 template <typename..., typename T = ::std::vector<::std::vector<::std::int32_t>>> 5714 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldF_ref() const& { 5715 return {this->fieldF, __isset.at(9), __isset.bit(9)}; 5716 } 5717 5718 template <typename..., typename T = ::std::vector<::std::vector<::std::int32_t>>> 5719 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldF_ref() const&& { 5720 return {static_cast<const T&&>(this->fieldF), __isset.at(9), __isset.bit(9)}; 5721 } 5722 5723 template <typename..., typename T = ::std::vector<::std::vector<::std::int32_t>>> 5724 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldF_ref() & { 5725 return {this->fieldF, __isset.at(9), __isset.bit(9)}; 5726 } 5727 5728 template <typename..., typename T = ::std::vector<::std::vector<::std::int32_t>>> 5729 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldF_ref() && { 5730 return {static_cast<T&&>(this->fieldF), __isset.at(9), __isset.bit(9)}; 5731 } 5732 5733 template <typename..., typename T = ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>> 5734 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldG_ref() const& { 5735 return {this->fieldG, __isset.at(10), __isset.bit(10)}; 5736 } 5737 5738 template <typename..., typename T = ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>> 5739 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldG_ref() const&& { 5740 return {static_cast<const T&&>(this->fieldG), __isset.at(10), __isset.bit(10)}; 5741 } 5742 5743 template <typename..., typename T = ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>> 5744 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldG_ref() & { 5745 return {this->fieldG, __isset.at(10), __isset.bit(10)}; 5746 } 5747 5748 template <typename..., typename T = ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>> 5749 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldG_ref() && { 5750 return {static_cast<T&&>(this->fieldG), __isset.at(10), __isset.bit(10)}; 5751 } 5752 5753 template <typename..., typename T = ::std::vector<::std::set<::std::int32_t>>> 5754 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldH_ref() const& { 5755 return {this->fieldH, __isset.at(11), __isset.bit(11)}; 5756 } 5757 5758 template <typename..., typename T = ::std::vector<::std::set<::std::int32_t>>> 5759 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldH_ref() const&& { 5760 return {static_cast<const T&&>(this->fieldH), __isset.at(11), __isset.bit(11)}; 5761 } 5762 5763 template <typename..., typename T = ::std::vector<::std::set<::std::int32_t>>> 5764 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldH_ref() & { 5765 return {this->fieldH, __isset.at(11), __isset.bit(11)}; 5766 } 5767 5768 template <typename..., typename T = ::std::vector<::std::set<::std::int32_t>>> 5769 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldH_ref() && { 5770 return {static_cast<T&&>(this->fieldH), __isset.at(11), __isset.bit(11)}; 5771 } 5772 5773 template <typename..., typename T = bool> 5774 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldI_ref() const& { 5775 return {this->fieldI, __isset.at(12), __isset.bit(12)}; 5776 } 5777 5778 template <typename..., typename T = bool> 5779 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldI_ref() const&& { 5780 return {static_cast<const T&&>(this->fieldI), __isset.at(12), __isset.bit(12)}; 5781 } 5782 5783 template <typename..., typename T = bool> 5784 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldI_ref() & { 5785 return {this->fieldI, __isset.at(12), __isset.bit(12)}; 5786 } 5787 5788 template <typename..., typename T = bool> 5789 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldI_ref() && { 5790 return {static_cast<T&&>(this->fieldI), __isset.at(12), __isset.bit(12)}; 5791 } 5792 5793 template <typename..., typename T = ::std::map<::std::string, ::std::vector<::std::int32_t>>> 5794 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldJ_ref() const& { 5795 return {this->fieldJ, __isset.at(13), __isset.bit(13)}; 5796 } 5797 5798 template <typename..., typename T = ::std::map<::std::string, ::std::vector<::std::int32_t>>> 5799 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldJ_ref() const&& { 5800 return {static_cast<const T&&>(this->fieldJ), __isset.at(13), __isset.bit(13)}; 5801 } 5802 5803 template <typename..., typename T = ::std::map<::std::string, ::std::vector<::std::int32_t>>> 5804 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldJ_ref() & { 5805 return {this->fieldJ, __isset.at(13), __isset.bit(13)}; 5806 } 5807 5808 template <typename..., typename T = ::std::map<::std::string, ::std::vector<::std::int32_t>>> 5809 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldJ_ref() && { 5810 return {static_cast<T&&>(this->fieldJ), __isset.at(13), __isset.bit(13)}; 5811 } 5812 5813 template <typename..., typename T = ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>> 5814 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldK_ref() const& { 5815 return {this->fieldK, __isset.at(14), __isset.bit(14)}; 5816 } 5817 5818 template <typename..., typename T = ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>> 5819 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldK_ref() const&& { 5820 return {static_cast<const T&&>(this->fieldK), __isset.at(14), __isset.bit(14)}; 5821 } 5822 5823 template <typename..., typename T = ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>> 5824 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldK_ref() & { 5825 return {this->fieldK, __isset.at(14), __isset.bit(14)}; 5826 } 5827 5828 template <typename..., typename T = ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>> 5829 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldK_ref() && { 5830 return {static_cast<T&&>(this->fieldK), __isset.at(14), __isset.bit(14)}; 5831 } 5832 5833 template <typename..., typename T = ::std::set<::std::set<::std::set<bool>>>> 5834 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldL_ref() const& { 5835 return {this->fieldL, __isset.at(15), __isset.bit(15)}; 5836 } 5837 5838 template <typename..., typename T = ::std::set<::std::set<::std::set<bool>>>> 5839 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldL_ref() const&& { 5840 return {static_cast<const T&&>(this->fieldL), __isset.at(15), __isset.bit(15)}; 5841 } 5842 5843 template <typename..., typename T = ::std::set<::std::set<::std::set<bool>>>> 5844 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldL_ref() & { 5845 return {this->fieldL, __isset.at(15), __isset.bit(15)}; 5846 } 5847 5848 template <typename..., typename T = ::std::set<::std::set<::std::set<bool>>>> 5849 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldL_ref() && { 5850 return {static_cast<T&&>(this->fieldL), __isset.at(15), __isset.bit(15)}; 5851 } 5852 5853 template <typename..., typename T = ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>> 5854 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldM_ref() const& { 5855 return {this->fieldM, __isset.at(16), __isset.bit(16)}; 5856 } 5857 5858 template <typename..., typename T = ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>> 5859 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldM_ref() const&& { 5860 return {static_cast<const T&&>(this->fieldM), __isset.at(16), __isset.bit(16)}; 5861 } 5862 5863 template <typename..., typename T = ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>> 5864 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldM_ref() & { 5865 return {this->fieldM, __isset.at(16), __isset.bit(16)}; 5866 } 5867 5868 template <typename..., typename T = ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>> 5869 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldM_ref() && { 5870 return {static_cast<T&&>(this->fieldM), __isset.at(16), __isset.bit(16)}; 5871 } 5872 5873 template <typename..., typename T = ::some::valid::ns::simpleTypeDef> 5874 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldN_ref() const& { 5875 return {this->fieldN, __isset.at(17), __isset.bit(17)}; 5876 } 5877 5878 template <typename..., typename T = ::some::valid::ns::simpleTypeDef> 5879 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldN_ref() const&& { 5880 return {static_cast<const T&&>(this->fieldN), __isset.at(17), __isset.bit(17)}; 5881 } 5882 5883 template <typename..., typename T = ::some::valid::ns::simpleTypeDef> 5884 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldN_ref() & { 5885 return {this->fieldN, __isset.at(17), __isset.bit(17)}; 5886 } 5887 5888 template <typename..., typename T = ::some::valid::ns::simpleTypeDef> 5889 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldN_ref() && { 5890 return {static_cast<T&&>(this->fieldN), __isset.at(17), __isset.bit(17)}; 5891 } 5892 5893 template <typename..., typename T = ::some::valid::ns::complexStructTypeDef> 5894 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldO_ref() const& { 5895 return {this->fieldO, __isset.at(18), __isset.bit(18)}; 5896 } 5897 5898 template <typename..., typename T = ::some::valid::ns::complexStructTypeDef> 5899 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldO_ref() const&& { 5900 return {static_cast<const T&&>(this->fieldO), __isset.at(18), __isset.bit(18)}; 5901 } 5902 5903 template <typename..., typename T = ::some::valid::ns::complexStructTypeDef> 5904 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldO_ref() & { 5905 return {this->fieldO, __isset.at(18), __isset.bit(18)}; 5906 } 5907 5908 template <typename..., typename T = ::some::valid::ns::complexStructTypeDef> 5909 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldO_ref() && { 5910 return {static_cast<T&&>(this->fieldO), __isset.at(18), __isset.bit(18)}; 5911 } 5912 5913 template <typename..., typename T = ::std::vector<::some::valid::ns::mostComplexTypeDef>> 5914 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldP_ref() const& { 5915 return {this->fieldP, __isset.at(19), __isset.bit(19)}; 5916 } 5917 5918 template <typename..., typename T = ::std::vector<::some::valid::ns::mostComplexTypeDef>> 5919 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldP_ref() const&& { 5920 return {static_cast<const T&&>(this->fieldP), __isset.at(19), __isset.bit(19)}; 5921 } 5922 5923 template <typename..., typename T = ::std::vector<::some::valid::ns::mostComplexTypeDef>> 5924 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldP_ref() & { 5925 return {this->fieldP, __isset.at(19), __isset.bit(19)}; 5926 } 5927 5928 template <typename..., typename T = ::std::vector<::some::valid::ns::mostComplexTypeDef>> 5929 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldP_ref() && { 5930 return {static_cast<T&&>(this->fieldP), __isset.at(19), __isset.bit(19)}; 5931 } 5932 5933 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5934 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldQ_ref() const& { 5935 return {this->fieldQ, __isset.at(20), __isset.bit(20)}; 5936 } 5937 5938 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5939 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldQ_ref() const&& { 5940 return {static_cast<const T&&>(this->fieldQ), __isset.at(20), __isset.bit(20)}; 5941 } 5942 5943 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5944 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldQ_ref() & { 5945 return {this->fieldQ, __isset.at(20), __isset.bit(20)}; 5946 } 5947 5948 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5949 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldQ_ref() && { 5950 return {static_cast<T&&>(this->fieldQ), __isset.at(20), __isset.bit(20)}; 5951 } 5952 5953 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5954 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldR_ref() const& { 5955 return {this->fieldR, __isset.at(21), __isset.bit(21)}; 5956 } 5957 5958 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5959 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldR_ref() const&& { 5960 return {static_cast<const T&&>(this->fieldR), __isset.at(21), __isset.bit(21)}; 5961 } 5962 5963 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5964 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldR_ref() & { 5965 return {this->fieldR, __isset.at(21), __isset.bit(21)}; 5966 } 5967 5968 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5969 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldR_ref() && { 5970 return {static_cast<T&&>(this->fieldR), __isset.at(21), __isset.bit(21)}; 5971 } 5972 5973 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5974 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldR_ref() const& { 5975 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldR}; 5976 } 5977 5978 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5979 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldR_ref() const&& { 5980 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldR)}; 5981 } 5982 5983 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5984 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldR_ref() & { 5985 return ::apache::thrift::required_field_ref<T&>{this->req_fieldR}; 5986 } 5987 5988 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5989 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldR_ref() && { 5990 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldR)}; 5991 } 5992 5993 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5994 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldR_ref() const& { 5995 return {this->opt_fieldR, __isset.at(22), __isset.bit(22)}; 5996 } 5997 5998 template <typename..., typename T = ::some::valid::ns::MyEnumA> 5999 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldR_ref() const&& { 6000 return {static_cast<const T&&>(this->opt_fieldR), __isset.at(22), __isset.bit(22)}; 6001 } 6002 6003 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6004 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldR_ref() & { 6005 return {this->opt_fieldR, __isset.at(22), __isset.bit(22)}; 6006 } 6007 6008 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6009 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldR_ref() && { 6010 return {static_cast<T&&>(this->opt_fieldR), __isset.at(22), __isset.bit(22)}; 6011 } 6012 6013 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6014 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldS_ref() const& { 6015 return {this->fieldS, __isset.at(23), __isset.bit(23)}; 6016 } 6017 6018 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6019 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldS_ref() const&& { 6020 return {static_cast<const T&&>(this->fieldS), __isset.at(23), __isset.bit(23)}; 6021 } 6022 6023 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6024 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldS_ref() & { 6025 return {this->fieldS, __isset.at(23), __isset.bit(23)}; 6026 } 6027 6028 template <typename..., typename T = ::some::valid::ns::MyEnumA> 6029 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldS_ref() && { 6030 return {static_cast<T&&>(this->fieldS), __isset.at(23), __isset.bit(23)}; 6031 } 6032 6033 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6034 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldT_ref() const& { 6035 return {this->fieldT, __isset.at(24), __isset.bit(24)}; 6036 } 6037 6038 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6039 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldT_ref() const&& { 6040 return {static_cast<const T&&>(this->fieldT), __isset.at(24), __isset.bit(24)}; 6041 } 6042 6043 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6044 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldT_ref() & { 6045 return {this->fieldT, __isset.at(24), __isset.bit(24)}; 6046 } 6047 6048 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6049 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldT_ref() && { 6050 return {static_cast<T&&>(this->fieldT), __isset.at(24), __isset.bit(24)}; 6051 } 6052 6053 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6054 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldU_ref() const& { 6055 return {this->fieldU, __isset.at(25), __isset.bit(25)}; 6056 } 6057 6058 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6059 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldU_ref() const&& { 6060 return {static_cast<const T&&>(this->fieldU), __isset.at(25), __isset.bit(25)}; 6061 } 6062 6063 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6064 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldU_ref() & { 6065 return {this->fieldU, __isset.at(25), __isset.bit(25)}; 6066 } 6067 6068 template <typename..., typename T = ::std::vector<::some::valid::ns::MyEnumA>> 6069 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldU_ref() && { 6070 return {static_cast<T&&>(this->fieldU), __isset.at(25), __isset.bit(25)}; 6071 } 6072 6073 template <typename..., typename T = ::some::valid::ns::MyStruct> 6074 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldV_ref() const& { 6075 return {this->fieldV, __isset.at(26), __isset.bit(26)}; 6076 } 6077 6078 template <typename..., typename T = ::some::valid::ns::MyStruct> 6079 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldV_ref() const&& { 6080 return {static_cast<const T&&>(this->fieldV), __isset.at(26), __isset.bit(26)}; 6081 } 6082 6083 template <typename..., typename T = ::some::valid::ns::MyStruct> 6084 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldV_ref() & { 6085 return {this->fieldV, __isset.at(26), __isset.bit(26)}; 6086 } 6087 6088 template <typename..., typename T = ::some::valid::ns::MyStruct> 6089 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldV_ref() && { 6090 return {static_cast<T&&>(this->fieldV), __isset.at(26), __isset.bit(26)}; 6091 } 6092 6093 template <typename..., typename T = ::some::valid::ns::MyStruct> 6094 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldV_ref() const& { 6095 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldV}; 6096 } 6097 6098 template <typename..., typename T = ::some::valid::ns::MyStruct> 6099 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldV_ref() const&& { 6100 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldV)}; 6101 } 6102 6103 template <typename..., typename T = ::some::valid::ns::MyStruct> 6104 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldV_ref() & { 6105 return ::apache::thrift::required_field_ref<T&>{this->req_fieldV}; 6106 } 6107 6108 template <typename..., typename T = ::some::valid::ns::MyStruct> 6109 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldV_ref() && { 6110 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldV)}; 6111 } 6112 6113 template <typename..., typename T = ::some::valid::ns::MyStruct> 6114 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldV_ref() const& { 6115 return {this->opt_fieldV, __isset.at(27), __isset.bit(27)}; 6116 } 6117 6118 template <typename..., typename T = ::some::valid::ns::MyStruct> 6119 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldV_ref() const&& { 6120 return {static_cast<const T&&>(this->opt_fieldV), __isset.at(27), __isset.bit(27)}; 6121 } 6122 6123 template <typename..., typename T = ::some::valid::ns::MyStruct> 6124 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldV_ref() & { 6125 return {this->opt_fieldV, __isset.at(27), __isset.bit(27)}; 6126 } 6127 6128 template <typename..., typename T = ::some::valid::ns::MyStruct> 6129 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldV_ref() && { 6130 return {static_cast<T&&>(this->opt_fieldV), __isset.at(27), __isset.bit(27)}; 6131 } 6132 6133 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 6134 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldW_ref() const& { 6135 return {this->fieldW, __isset.at(28), __isset.bit(28)}; 6136 } 6137 6138 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 6139 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldW_ref() const&& { 6140 return {static_cast<const T&&>(this->fieldW), __isset.at(28), __isset.bit(28)}; 6141 } 6142 6143 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 6144 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldW_ref() & { 6145 return {this->fieldW, __isset.at(28), __isset.bit(28)}; 6146 } 6147 6148 template <typename..., typename T = ::std::set<::some::valid::ns::MyStruct>> 6149 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldW_ref() && { 6150 return {static_cast<T&&>(this->fieldW), __isset.at(28), __isset.bit(28)}; 6151 } 6152 6153 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6154 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldX_ref() const& { 6155 return {this->fieldX, __isset.at(29), __isset.bit(29)}; 6156 } 6157 6158 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6159 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldX_ref() const&& { 6160 return {static_cast<const T&&>(this->fieldX), __isset.at(29), __isset.bit(29)}; 6161 } 6162 6163 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6164 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldX_ref() & { 6165 return {this->fieldX, __isset.at(29), __isset.bit(29)}; 6166 } 6167 6168 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6169 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldX_ref() && { 6170 return {static_cast<T&&>(this->fieldX), __isset.at(29), __isset.bit(29)}; 6171 } 6172 6173 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6174 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> req_fieldX_ref() const& { 6175 return ::apache::thrift::required_field_ref<const T&>{this->req_fieldX}; 6176 } 6177 6178 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6179 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> req_fieldX_ref() const&& { 6180 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->req_fieldX)}; 6181 } 6182 6183 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6184 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> req_fieldX_ref() & { 6185 return ::apache::thrift::required_field_ref<T&>{this->req_fieldX}; 6186 } 6187 6188 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6189 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> req_fieldX_ref() && { 6190 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->req_fieldX)}; 6191 } 6192 6193 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6194 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> opt_fieldX_ref() const& { 6195 return {this->opt_fieldX, __isset.at(30), __isset.bit(30)}; 6196 } 6197 6198 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6199 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> opt_fieldX_ref() const&& { 6200 return {static_cast<const T&&>(this->opt_fieldX), __isset.at(30), __isset.bit(30)}; 6201 } 6202 6203 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6204 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> opt_fieldX_ref() & { 6205 return {this->opt_fieldX, __isset.at(30), __isset.bit(30)}; 6206 } 6207 6208 template <typename..., typename T = ::some::valid::ns::ComplexUnion> 6209 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> opt_fieldX_ref() && { 6210 return {static_cast<T&&>(this->opt_fieldX), __isset.at(30), __isset.bit(30)}; 6211 } 6212 6213 template <typename..., typename T = ::std::vector<::some::valid::ns::ComplexUnion>> 6214 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldY_ref() const& { 6215 return {this->fieldY, __isset.at(31), __isset.bit(31)}; 6216 } 6217 6218 template <typename..., typename T = ::std::vector<::some::valid::ns::ComplexUnion>> 6219 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldY_ref() const&& { 6220 return {static_cast<const T&&>(this->fieldY), __isset.at(31), __isset.bit(31)}; 6221 } 6222 6223 template <typename..., typename T = ::std::vector<::some::valid::ns::ComplexUnion>> 6224 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldY_ref() & { 6225 return {this->fieldY, __isset.at(31), __isset.bit(31)}; 6226 } 6227 6228 template <typename..., typename T = ::std::vector<::some::valid::ns::ComplexUnion>> 6229 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldY_ref() && { 6230 return {static_cast<T&&>(this->fieldY), __isset.at(31), __isset.bit(31)}; 6231 } 6232 6233 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 6234 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldZ_ref() const& { 6235 return {this->fieldZ, __isset.at(32), __isset.bit(32)}; 6236 } 6237 6238 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 6239 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldZ_ref() const&& { 6240 return {static_cast<const T&&>(this->fieldZ), __isset.at(32), __isset.bit(32)}; 6241 } 6242 6243 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 6244 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldZ_ref() & { 6245 return {this->fieldZ, __isset.at(32), __isset.bit(32)}; 6246 } 6247 6248 template <typename..., typename T = ::some::valid::ns::unionTypeDef> 6249 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldZ_ref() && { 6250 return {static_cast<T&&>(this->fieldZ), __isset.at(32), __isset.bit(32)}; 6251 } 6252 6253 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 6254 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldAA_ref() const& { 6255 return {this->fieldAA, __isset.at(33), __isset.bit(33)}; 6256 } 6257 6258 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 6259 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldAA_ref() const&& { 6260 return {static_cast<const T&&>(this->fieldAA), __isset.at(33), __isset.bit(33)}; 6261 } 6262 6263 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 6264 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldAA_ref() & { 6265 return {this->fieldAA, __isset.at(33), __isset.bit(33)}; 6266 } 6267 6268 template <typename..., typename T = ::std::vector<::some::valid::ns::unionTypeDef>> 6269 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldAA_ref() && { 6270 return {static_cast<T&&>(this->fieldAA), __isset.at(33), __isset.bit(33)}; 6271 } 6272 6273 template <typename..., typename T = ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>> 6274 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldAB_ref() const& { 6275 return {this->fieldAB, __isset.at(34), __isset.bit(34)}; 6276 } 6277 6278 template <typename..., typename T = ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>> 6279 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldAB_ref() const&& { 6280 return {static_cast<const T&&>(this->fieldAB), __isset.at(34), __isset.bit(34)}; 6281 } 6282 6283 template <typename..., typename T = ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>> 6284 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldAB_ref() & { 6285 return {this->fieldAB, __isset.at(34), __isset.bit(34)}; 6286 } 6287 6288 template <typename..., typename T = ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>> 6289 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldAB_ref() && { 6290 return {static_cast<T&&>(this->fieldAB), __isset.at(34), __isset.bit(34)}; 6291 } 6292 6293 template <typename..., typename T = ::some::valid::ns::MyEnumB> 6294 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldAC_ref() const& { 6295 return {this->fieldAC, __isset.at(35), __isset.bit(35)}; 6296 } 6297 6298 template <typename..., typename T = ::some::valid::ns::MyEnumB> 6299 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldAC_ref() const&& { 6300 return {static_cast<const T&&>(this->fieldAC), __isset.at(35), __isset.bit(35)}; 6301 } 6302 6303 template <typename..., typename T = ::some::valid::ns::MyEnumB> 6304 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldAC_ref() & { 6305 return {this->fieldAC, __isset.at(35), __isset.bit(35)}; 6306 } 6307 6308 template <typename..., typename T = ::some::valid::ns::MyEnumB> 6309 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldAC_ref() && { 6310 return {static_cast<T&&>(this->fieldAC), __isset.at(35), __isset.bit(35)}; 6311 } 6312 6313 template <typename..., typename T = ::a::different::ns::AnEnum> 6314 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldAD_ref() const& { 6315 return {this->fieldAD, __isset.at(36), __isset.bit(36)}; 6316 } 6317 6318 template <typename..., typename T = ::a::different::ns::AnEnum> 6319 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldAD_ref() const&& { 6320 return {static_cast<const T&&>(this->fieldAD), __isset.at(36), __isset.bit(36)}; 6321 } 6322 6323 template <typename..., typename T = ::a::different::ns::AnEnum> 6324 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldAD_ref() & { 6325 return {this->fieldAD, __isset.at(36), __isset.bit(36)}; 6326 } 6327 6328 template <typename..., typename T = ::a::different::ns::AnEnum> 6329 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldAD_ref() && { 6330 return {static_cast<T&&>(this->fieldAD), __isset.at(36), __isset.bit(36)}; 6331 } 6332 6333 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 6334 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldAE_ref() const& { 6335 return {this->fieldAE, __isset.at(37), __isset.bit(37)}; 6336 } 6337 6338 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 6339 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldAE_ref() const&& { 6340 return {static_cast<const T&&>(this->fieldAE), __isset.at(37), __isset.bit(37)}; 6341 } 6342 6343 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 6344 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldAE_ref() & { 6345 return {this->fieldAE, __isset.at(37), __isset.bit(37)}; 6346 } 6347 6348 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 6349 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldAE_ref() && { 6350 return {static_cast<T&&>(this->fieldAE), __isset.at(37), __isset.bit(37)}; 6351 } 6352 6353 template <typename..., typename T = ::some::valid::ns::IndirectionD> 6354 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldSD_ref() const& { 6355 return {this->fieldSD, __isset.at(38), __isset.bit(38)}; 6356 } 6357 6358 template <typename..., typename T = ::some::valid::ns::IndirectionD> 6359 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldSD_ref() const&& { 6360 return {static_cast<const T&&>(this->fieldSD), __isset.at(38), __isset.bit(38)}; 6361 } 6362 6363 template <typename..., typename T = ::some::valid::ns::IndirectionD> 6364 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldSD_ref() & { 6365 return {this->fieldSD, __isset.at(38), __isset.bit(38)}; 6366 } 6367 6368 template <typename..., typename T = ::some::valid::ns::IndirectionD> 6369 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldSD_ref() && { 6370 return {static_cast<T&&>(this->fieldSD), __isset.at(38), __isset.bit(38)}; 6371 } 6372 6373 bool get_fieldA() const { 6374 return fieldA; 6375 } 6376 6377 [[deprecated("Use `FOO.fieldA_ref() = BAR;` instead of `FOO.set_fieldA(BAR);`")]] 6378 bool& set_fieldA(bool fieldA_) { 6379 fieldA_ref() = fieldA_; 6380 return fieldA; 6381 } 6382 6383 bool get_req_fieldA() const { 6384 return req_fieldA; 6385 } 6386 6387 [[deprecated("Use `FOO.req_fieldA_ref() = BAR;` instead of `FOO.set_req_fieldA(BAR);`")]] 6388 bool& set_req_fieldA(bool req_fieldA_) { 6389 req_fieldA_ref() = req_fieldA_; 6390 return req_fieldA; 6391 } 6392 6393 const bool* get_opt_fieldA() const& { 6394 return opt_fieldA_ref() ? std::addressof(opt_fieldA) : nullptr; 6395 } 6396 6397 bool* get_opt_fieldA() & { 6398 return opt_fieldA_ref() ? std::addressof(opt_fieldA) : nullptr; 6399 } 6400 bool* get_opt_fieldA() && = delete; 6401 6402 [[deprecated("Use `FOO.opt_fieldA_ref() = BAR;` instead of `FOO.set_opt_fieldA(BAR);`")]] 6403 bool& set_opt_fieldA(bool opt_fieldA_) { 6404 opt_fieldA_ref() = opt_fieldA_; 6405 return opt_fieldA; 6406 } 6407 const ::std::map<::std::string, bool>& get_fieldB() const&; 6408 ::std::map<::std::string, bool> get_fieldB() &&; 6409 6410 template <typename T_containerStruct_fieldB_struct_setter = ::std::map<::std::string, bool>> 6411 [[deprecated("Use `FOO.fieldB_ref() = BAR;` instead of `FOO.set_fieldB(BAR);`")]] 6412 ::std::map<::std::string, bool>& set_fieldB(T_containerStruct_fieldB_struct_setter&& fieldB_) { 6413 fieldB_ref() = std::forward<T_containerStruct_fieldB_struct_setter>(fieldB_); 6414 return fieldB; 6415 } 6416 const ::std::map<::std::string, bool>& get_req_fieldB() const&; 6417 ::std::map<::std::string, bool> get_req_fieldB() &&; 6418 6419 template <typename T_containerStruct_req_fieldB_struct_setter = ::std::map<::std::string, bool>> 6420 [[deprecated("Use `FOO.req_fieldB_ref() = BAR;` instead of `FOO.set_req_fieldB(BAR);`")]] 6421 ::std::map<::std::string, bool>& set_req_fieldB(T_containerStruct_req_fieldB_struct_setter&& req_fieldB_) { 6422 req_fieldB_ref() = std::forward<T_containerStruct_req_fieldB_struct_setter>(req_fieldB_); 6423 return req_fieldB; 6424 } 6425 const ::std::map<::std::string, bool>* get_opt_fieldB() const&; 6426 ::std::map<::std::string, bool>* get_opt_fieldB() &; 6427 ::std::map<::std::string, bool>* get_opt_fieldB() && = delete; 6428 6429 template <typename T_containerStruct_opt_fieldB_struct_setter = ::std::map<::std::string, bool>> 6430 [[deprecated("Use `FOO.opt_fieldB_ref() = BAR;` instead of `FOO.set_opt_fieldB(BAR);`")]] 6431 ::std::map<::std::string, bool>& set_opt_fieldB(T_containerStruct_opt_fieldB_struct_setter&& opt_fieldB_) { 6432 opt_fieldB_ref() = std::forward<T_containerStruct_opt_fieldB_struct_setter>(opt_fieldB_); 6433 return opt_fieldB; 6434 } 6435 const ::std::set<::std::int32_t>& get_fieldC() const&; 6436 ::std::set<::std::int32_t> get_fieldC() &&; 6437 6438 template <typename T_containerStruct_fieldC_struct_setter = ::std::set<::std::int32_t>> 6439 [[deprecated("Use `FOO.fieldC_ref() = BAR;` instead of `FOO.set_fieldC(BAR);`")]] 6440 ::std::set<::std::int32_t>& set_fieldC(T_containerStruct_fieldC_struct_setter&& fieldC_) { 6441 fieldC_ref() = std::forward<T_containerStruct_fieldC_struct_setter>(fieldC_); 6442 return fieldC; 6443 } 6444 const ::std::set<::std::int32_t>& get_req_fieldC() const&; 6445 ::std::set<::std::int32_t> get_req_fieldC() &&; 6446 6447 template <typename T_containerStruct_req_fieldC_struct_setter = ::std::set<::std::int32_t>> 6448 [[deprecated("Use `FOO.req_fieldC_ref() = BAR;` instead of `FOO.set_req_fieldC(BAR);`")]] 6449 ::std::set<::std::int32_t>& set_req_fieldC(T_containerStruct_req_fieldC_struct_setter&& req_fieldC_) { 6450 req_fieldC_ref() = std::forward<T_containerStruct_req_fieldC_struct_setter>(req_fieldC_); 6451 return req_fieldC; 6452 } 6453 const ::std::set<::std::int32_t>* get_opt_fieldC() const&; 6454 ::std::set<::std::int32_t>* get_opt_fieldC() &; 6455 ::std::set<::std::int32_t>* get_opt_fieldC() && = delete; 6456 6457 template <typename T_containerStruct_opt_fieldC_struct_setter = ::std::set<::std::int32_t>> 6458 [[deprecated("Use `FOO.opt_fieldC_ref() = BAR;` instead of `FOO.set_opt_fieldC(BAR);`")]] 6459 ::std::set<::std::int32_t>& set_opt_fieldC(T_containerStruct_opt_fieldC_struct_setter&& opt_fieldC_) { 6460 opt_fieldC_ref() = std::forward<T_containerStruct_opt_fieldC_struct_setter>(opt_fieldC_); 6461 return opt_fieldC; 6462 } 6463 6464 const ::std::string& get_fieldD() const& { 6465 return fieldD; 6466 } 6467 6468 ::std::string get_fieldD() && { 6469 return std::move(fieldD); 6470 } 6471 6472 template <typename T_containerStruct_fieldD_struct_setter = ::std::string> 6473 [[deprecated("Use `FOO.fieldD_ref() = BAR;` instead of `FOO.set_fieldD(BAR);`")]] 6474 ::std::string& set_fieldD(T_containerStruct_fieldD_struct_setter&& fieldD_) { 6475 fieldD_ref() = std::forward<T_containerStruct_fieldD_struct_setter>(fieldD_); 6476 return fieldD; 6477 } 6478 6479 const ::std::string& get_fieldE() const& { 6480 return fieldE; 6481 } 6482 6483 ::std::string get_fieldE() && { 6484 return std::move(fieldE); 6485 } 6486 6487 template <typename T_containerStruct_fieldE_struct_setter = ::std::string> 6488 [[deprecated("Use `FOO.fieldE_ref() = BAR;` instead of `FOO.set_fieldE(BAR);`")]] 6489 ::std::string& set_fieldE(T_containerStruct_fieldE_struct_setter&& fieldE_) { 6490 fieldE_ref() = std::forward<T_containerStruct_fieldE_struct_setter>(fieldE_); 6491 return fieldE; 6492 } 6493 6494 const ::std::string& get_req_fieldE() const& { 6495 return req_fieldE; 6496 } 6497 6498 ::std::string get_req_fieldE() && { 6499 return std::move(req_fieldE); 6500 } 6501 6502 template <typename T_containerStruct_req_fieldE_struct_setter = ::std::string> 6503 [[deprecated("Use `FOO.req_fieldE_ref() = BAR;` instead of `FOO.set_req_fieldE(BAR);`")]] 6504 ::std::string& set_req_fieldE(T_containerStruct_req_fieldE_struct_setter&& req_fieldE_) { 6505 req_fieldE_ref() = std::forward<T_containerStruct_req_fieldE_struct_setter>(req_fieldE_); 6506 return req_fieldE; 6507 } 6508 6509 const ::std::string* get_opt_fieldE() const& { 6510 return opt_fieldE_ref() ? std::addressof(opt_fieldE) : nullptr; 6511 } 6512 6513 ::std::string* get_opt_fieldE() & { 6514 return opt_fieldE_ref() ? std::addressof(opt_fieldE) : nullptr; 6515 } 6516 ::std::string* get_opt_fieldE() && = delete; 6517 6518 template <typename T_containerStruct_opt_fieldE_struct_setter = ::std::string> 6519 [[deprecated("Use `FOO.opt_fieldE_ref() = BAR;` instead of `FOO.set_opt_fieldE(BAR);`")]] 6520 ::std::string& set_opt_fieldE(T_containerStruct_opt_fieldE_struct_setter&& opt_fieldE_) { 6521 opt_fieldE_ref() = std::forward<T_containerStruct_opt_fieldE_struct_setter>(opt_fieldE_); 6522 return opt_fieldE; 6523 } 6524 const ::std::vector<::std::vector<::std::int32_t>>& get_fieldF() const&; 6525 ::std::vector<::std::vector<::std::int32_t>> get_fieldF() &&; 6526 6527 template <typename T_containerStruct_fieldF_struct_setter = ::std::vector<::std::vector<::std::int32_t>>> 6528 [[deprecated("Use `FOO.fieldF_ref() = BAR;` instead of `FOO.set_fieldF(BAR);`")]] 6529 ::std::vector<::std::vector<::std::int32_t>>& set_fieldF(T_containerStruct_fieldF_struct_setter&& fieldF_) { 6530 fieldF_ref() = std::forward<T_containerStruct_fieldF_struct_setter>(fieldF_); 6531 return fieldF; 6532 } 6533 const ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>& get_fieldG() const&; 6534 ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>> get_fieldG() &&; 6535 6536 template <typename T_containerStruct_fieldG_struct_setter = ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>> 6537 [[deprecated("Use `FOO.fieldG_ref() = BAR;` instead of `FOO.set_fieldG(BAR);`")]] 6538 ::std::map<::std::string, ::std::map<::std::string, ::std::map<::std::string, ::std::int32_t>>>& set_fieldG(T_containerStruct_fieldG_struct_setter&& fieldG_) { 6539 fieldG_ref() = std::forward<T_containerStruct_fieldG_struct_setter>(fieldG_); 6540 return fieldG; 6541 } 6542 const ::std::vector<::std::set<::std::int32_t>>& get_fieldH() const&; 6543 ::std::vector<::std::set<::std::int32_t>> get_fieldH() &&; 6544 6545 template <typename T_containerStruct_fieldH_struct_setter = ::std::vector<::std::set<::std::int32_t>>> 6546 [[deprecated("Use `FOO.fieldH_ref() = BAR;` instead of `FOO.set_fieldH(BAR);`")]] 6547 ::std::vector<::std::set<::std::int32_t>>& set_fieldH(T_containerStruct_fieldH_struct_setter&& fieldH_) { 6548 fieldH_ref() = std::forward<T_containerStruct_fieldH_struct_setter>(fieldH_); 6549 return fieldH; 6550 } 6551 6552 bool get_fieldI() const { 6553 return fieldI; 6554 } 6555 6556 [[deprecated("Use `FOO.fieldI_ref() = BAR;` instead of `FOO.set_fieldI(BAR);`")]] 6557 bool& set_fieldI(bool fieldI_) { 6558 fieldI_ref() = fieldI_; 6559 return fieldI; 6560 } 6561 const ::std::map<::std::string, ::std::vector<::std::int32_t>>& get_fieldJ() const&; 6562 ::std::map<::std::string, ::std::vector<::std::int32_t>> get_fieldJ() &&; 6563 6564 template <typename T_containerStruct_fieldJ_struct_setter = ::std::map<::std::string, ::std::vector<::std::int32_t>>> 6565 [[deprecated("Use `FOO.fieldJ_ref() = BAR;` instead of `FOO.set_fieldJ(BAR);`")]] 6566 ::std::map<::std::string, ::std::vector<::std::int32_t>>& set_fieldJ(T_containerStruct_fieldJ_struct_setter&& fieldJ_) { 6567 fieldJ_ref() = std::forward<T_containerStruct_fieldJ_struct_setter>(fieldJ_); 6568 return fieldJ; 6569 } 6570 const ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>& get_fieldK() const&; 6571 ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>> get_fieldK() &&; 6572 6573 template <typename T_containerStruct_fieldK_struct_setter = ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>> 6574 [[deprecated("Use `FOO.fieldK_ref() = BAR;` instead of `FOO.set_fieldK(BAR);`")]] 6575 ::std::vector<::std::vector<::std::vector<::std::vector<::std::int32_t>>>>& set_fieldK(T_containerStruct_fieldK_struct_setter&& fieldK_) { 6576 fieldK_ref() = std::forward<T_containerStruct_fieldK_struct_setter>(fieldK_); 6577 return fieldK; 6578 } 6579 const ::std::set<::std::set<::std::set<bool>>>& get_fieldL() const&; 6580 ::std::set<::std::set<::std::set<bool>>> get_fieldL() &&; 6581 6582 template <typename T_containerStruct_fieldL_struct_setter = ::std::set<::std::set<::std::set<bool>>>> 6583 [[deprecated("Use `FOO.fieldL_ref() = BAR;` instead of `FOO.set_fieldL(BAR);`")]] 6584 ::std::set<::std::set<::std::set<bool>>>& set_fieldL(T_containerStruct_fieldL_struct_setter&& fieldL_) { 6585 fieldL_ref() = std::forward<T_containerStruct_fieldL_struct_setter>(fieldL_); 6586 return fieldL; 6587 } 6588 const ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>& get_fieldM() const&; 6589 ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>> get_fieldM() &&; 6590 6591 template <typename T_containerStruct_fieldM_struct_setter = ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>> 6592 [[deprecated("Use `FOO.fieldM_ref() = BAR;` instead of `FOO.set_fieldM(BAR);`")]] 6593 ::std::map<::std::set<::std::vector<::std::int32_t>>, ::std::map<::std::vector<::std::set<::std::string>>, ::std::string>>& set_fieldM(T_containerStruct_fieldM_struct_setter&& fieldM_) { 6594 fieldM_ref() = std::forward<T_containerStruct_fieldM_struct_setter>(fieldM_); 6595 return fieldM; 6596 } 6597 6598 ::some::valid::ns::simpleTypeDef get_fieldN() const { 6599 return fieldN; 6600 } 6601 6602 [[deprecated("Use `FOO.fieldN_ref() = BAR;` instead of `FOO.set_fieldN(BAR);`")]] 6603 ::some::valid::ns::simpleTypeDef& set_fieldN(::some::valid::ns::simpleTypeDef fieldN_) { 6604 fieldN_ref() = fieldN_; 6605 return fieldN; 6606 } 6607 const ::some::valid::ns::complexStructTypeDef& get_fieldO() const&; 6608 ::some::valid::ns::complexStructTypeDef get_fieldO() &&; 6609 6610 template <typename T_containerStruct_fieldO_struct_setter = ::some::valid::ns::complexStructTypeDef> 6611 [[deprecated("Use `FOO.fieldO_ref() = BAR;` instead of `FOO.set_fieldO(BAR);`")]] 6612 ::some::valid::ns::complexStructTypeDef& set_fieldO(T_containerStruct_fieldO_struct_setter&& fieldO_) { 6613 fieldO_ref() = std::forward<T_containerStruct_fieldO_struct_setter>(fieldO_); 6614 return fieldO; 6615 } 6616 const ::std::vector<::some::valid::ns::mostComplexTypeDef>& get_fieldP() const&; 6617 ::std::vector<::some::valid::ns::mostComplexTypeDef> get_fieldP() &&; 6618 6619 template <typename T_containerStruct_fieldP_struct_setter = ::std::vector<::some::valid::ns::mostComplexTypeDef>> 6620 [[deprecated("Use `FOO.fieldP_ref() = BAR;` instead of `FOO.set_fieldP(BAR);`")]] 6621 ::std::vector<::some::valid::ns::mostComplexTypeDef>& set_fieldP(T_containerStruct_fieldP_struct_setter&& fieldP_) { 6622 fieldP_ref() = std::forward<T_containerStruct_fieldP_struct_setter>(fieldP_); 6623 return fieldP; 6624 } 6625 6626 ::some::valid::ns::MyEnumA get_fieldQ() const { 6627 return fieldQ; 6628 } 6629 6630 [[deprecated("Use `FOO.fieldQ_ref() = BAR;` instead of `FOO.set_fieldQ(BAR);`")]] 6631 ::some::valid::ns::MyEnumA& set_fieldQ(::some::valid::ns::MyEnumA fieldQ_) { 6632 fieldQ_ref() = fieldQ_; 6633 return fieldQ; 6634 } 6635 6636 ::some::valid::ns::MyEnumA get_fieldR() const { 6637 return fieldR; 6638 } 6639 6640 [[deprecated("Use `FOO.fieldR_ref() = BAR;` instead of `FOO.set_fieldR(BAR);`")]] 6641 ::some::valid::ns::MyEnumA& set_fieldR(::some::valid::ns::MyEnumA fieldR_) { 6642 fieldR_ref() = fieldR_; 6643 return fieldR; 6644 } 6645 6646 ::some::valid::ns::MyEnumA get_req_fieldR() const { 6647 return req_fieldR; 6648 } 6649 6650 [[deprecated("Use `FOO.req_fieldR_ref() = BAR;` instead of `FOO.set_req_fieldR(BAR);`")]] 6651 ::some::valid::ns::MyEnumA& set_req_fieldR(::some::valid::ns::MyEnumA req_fieldR_) { 6652 req_fieldR_ref() = req_fieldR_; 6653 return req_fieldR; 6654 } 6655 6656 const ::some::valid::ns::MyEnumA* get_opt_fieldR() const& { 6657 return opt_fieldR_ref() ? std::addressof(opt_fieldR) : nullptr; 6658 } 6659 6660 ::some::valid::ns::MyEnumA* get_opt_fieldR() & { 6661 return opt_fieldR_ref() ? std::addressof(opt_fieldR) : nullptr; 6662 } 6663 ::some::valid::ns::MyEnumA* get_opt_fieldR() && = delete; 6664 6665 [[deprecated("Use `FOO.opt_fieldR_ref() = BAR;` instead of `FOO.set_opt_fieldR(BAR);`")]] 6666 ::some::valid::ns::MyEnumA& set_opt_fieldR(::some::valid::ns::MyEnumA opt_fieldR_) { 6667 opt_fieldR_ref() = opt_fieldR_; 6668 return opt_fieldR; 6669 } 6670 6671 ::some::valid::ns::MyEnumA get_fieldS() const { 6672 return fieldS; 6673 } 6674 6675 [[deprecated("Use `FOO.fieldS_ref() = BAR;` instead of `FOO.set_fieldS(BAR);`")]] 6676 ::some::valid::ns::MyEnumA& set_fieldS(::some::valid::ns::MyEnumA fieldS_) { 6677 fieldS_ref() = fieldS_; 6678 return fieldS; 6679 } 6680 const ::std::vector<::some::valid::ns::MyEnumA>& get_fieldT() const&; 6681 ::std::vector<::some::valid::ns::MyEnumA> get_fieldT() &&; 6682 6683 template <typename T_containerStruct_fieldT_struct_setter = ::std::vector<::some::valid::ns::MyEnumA>> 6684 [[deprecated("Use `FOO.fieldT_ref() = BAR;` instead of `FOO.set_fieldT(BAR);`")]] 6685 ::std::vector<::some::valid::ns::MyEnumA>& set_fieldT(T_containerStruct_fieldT_struct_setter&& fieldT_) { 6686 fieldT_ref() = std::forward<T_containerStruct_fieldT_struct_setter>(fieldT_); 6687 return fieldT; 6688 } 6689 const ::std::vector<::some::valid::ns::MyEnumA>& get_fieldU() const&; 6690 ::std::vector<::some::valid::ns::MyEnumA> get_fieldU() &&; 6691 6692 template <typename T_containerStruct_fieldU_struct_setter = ::std::vector<::some::valid::ns::MyEnumA>> 6693 [[deprecated("Use `FOO.fieldU_ref() = BAR;` instead of `FOO.set_fieldU(BAR);`")]] 6694 ::std::vector<::some::valid::ns::MyEnumA>& set_fieldU(T_containerStruct_fieldU_struct_setter&& fieldU_) { 6695 fieldU_ref() = std::forward<T_containerStruct_fieldU_struct_setter>(fieldU_); 6696 return fieldU; 6697 } 6698 const ::some::valid::ns::MyStruct& get_fieldV() const&; 6699 ::some::valid::ns::MyStruct get_fieldV() &&; 6700 6701 template <typename T_containerStruct_fieldV_struct_setter = ::some::valid::ns::MyStruct> 6702 [[deprecated("Use `FOO.fieldV_ref() = BAR;` instead of `FOO.set_fieldV(BAR);`")]] 6703 ::some::valid::ns::MyStruct& set_fieldV(T_containerStruct_fieldV_struct_setter&& fieldV_) { 6704 fieldV_ref() = std::forward<T_containerStruct_fieldV_struct_setter>(fieldV_); 6705 return fieldV; 6706 } 6707 const ::some::valid::ns::MyStruct& get_req_fieldV() const&; 6708 ::some::valid::ns::MyStruct get_req_fieldV() &&; 6709 6710 template <typename T_containerStruct_req_fieldV_struct_setter = ::some::valid::ns::MyStruct> 6711 [[deprecated("Use `FOO.req_fieldV_ref() = BAR;` instead of `FOO.set_req_fieldV(BAR);`")]] 6712 ::some::valid::ns::MyStruct& set_req_fieldV(T_containerStruct_req_fieldV_struct_setter&& req_fieldV_) { 6713 req_fieldV_ref() = std::forward<T_containerStruct_req_fieldV_struct_setter>(req_fieldV_); 6714 return req_fieldV; 6715 } 6716 const ::some::valid::ns::MyStruct* get_opt_fieldV() const&; 6717 ::some::valid::ns::MyStruct* get_opt_fieldV() &; 6718 ::some::valid::ns::MyStruct* get_opt_fieldV() && = delete; 6719 6720 template <typename T_containerStruct_opt_fieldV_struct_setter = ::some::valid::ns::MyStruct> 6721 [[deprecated("Use `FOO.opt_fieldV_ref() = BAR;` instead of `FOO.set_opt_fieldV(BAR);`")]] 6722 ::some::valid::ns::MyStruct& set_opt_fieldV(T_containerStruct_opt_fieldV_struct_setter&& opt_fieldV_) { 6723 opt_fieldV_ref() = std::forward<T_containerStruct_opt_fieldV_struct_setter>(opt_fieldV_); 6724 return opt_fieldV; 6725 } 6726 const ::std::set<::some::valid::ns::MyStruct>& get_fieldW() const&; 6727 ::std::set<::some::valid::ns::MyStruct> get_fieldW() &&; 6728 6729 template <typename T_containerStruct_fieldW_struct_setter = ::std::set<::some::valid::ns::MyStruct>> 6730 [[deprecated("Use `FOO.fieldW_ref() = BAR;` instead of `FOO.set_fieldW(BAR);`")]] 6731 ::std::set<::some::valid::ns::MyStruct>& set_fieldW(T_containerStruct_fieldW_struct_setter&& fieldW_) { 6732 fieldW_ref() = std::forward<T_containerStruct_fieldW_struct_setter>(fieldW_); 6733 return fieldW; 6734 } 6735 const ::some::valid::ns::ComplexUnion& get_fieldX() const&; 6736 ::some::valid::ns::ComplexUnion get_fieldX() &&; 6737 6738 template <typename T_containerStruct_fieldX_struct_setter = ::some::valid::ns::ComplexUnion> 6739 [[deprecated("Use `FOO.fieldX_ref() = BAR;` instead of `FOO.set_fieldX(BAR);`")]] 6740 ::some::valid::ns::ComplexUnion& set_fieldX(T_containerStruct_fieldX_struct_setter&& fieldX_) { 6741 fieldX_ref() = std::forward<T_containerStruct_fieldX_struct_setter>(fieldX_); 6742 return fieldX; 6743 } 6744 const ::some::valid::ns::ComplexUnion& get_req_fieldX() const&; 6745 ::some::valid::ns::ComplexUnion get_req_fieldX() &&; 6746 6747 template <typename T_containerStruct_req_fieldX_struct_setter = ::some::valid::ns::ComplexUnion> 6748 [[deprecated("Use `FOO.req_fieldX_ref() = BAR;` instead of `FOO.set_req_fieldX(BAR);`")]] 6749 ::some::valid::ns::ComplexUnion& set_req_fieldX(T_containerStruct_req_fieldX_struct_setter&& req_fieldX_) { 6750 req_fieldX_ref() = std::forward<T_containerStruct_req_fieldX_struct_setter>(req_fieldX_); 6751 return req_fieldX; 6752 } 6753 const ::some::valid::ns::ComplexUnion* get_opt_fieldX() const&; 6754 ::some::valid::ns::ComplexUnion* get_opt_fieldX() &; 6755 ::some::valid::ns::ComplexUnion* get_opt_fieldX() && = delete; 6756 6757 template <typename T_containerStruct_opt_fieldX_struct_setter = ::some::valid::ns::ComplexUnion> 6758 [[deprecated("Use `FOO.opt_fieldX_ref() = BAR;` instead of `FOO.set_opt_fieldX(BAR);`")]] 6759 ::some::valid::ns::ComplexUnion& set_opt_fieldX(T_containerStruct_opt_fieldX_struct_setter&& opt_fieldX_) { 6760 opt_fieldX_ref() = std::forward<T_containerStruct_opt_fieldX_struct_setter>(opt_fieldX_); 6761 return opt_fieldX; 6762 } 6763 const ::std::vector<::some::valid::ns::ComplexUnion>& get_fieldY() const&; 6764 ::std::vector<::some::valid::ns::ComplexUnion> get_fieldY() &&; 6765 6766 template <typename T_containerStruct_fieldY_struct_setter = ::std::vector<::some::valid::ns::ComplexUnion>> 6767 [[deprecated("Use `FOO.fieldY_ref() = BAR;` instead of `FOO.set_fieldY(BAR);`")]] 6768 ::std::vector<::some::valid::ns::ComplexUnion>& set_fieldY(T_containerStruct_fieldY_struct_setter&& fieldY_) { 6769 fieldY_ref() = std::forward<T_containerStruct_fieldY_struct_setter>(fieldY_); 6770 return fieldY; 6771 } 6772 const ::some::valid::ns::unionTypeDef& get_fieldZ() const&; 6773 ::some::valid::ns::unionTypeDef get_fieldZ() &&; 6774 6775 template <typename T_containerStruct_fieldZ_struct_setter = ::some::valid::ns::unionTypeDef> 6776 [[deprecated("Use `FOO.fieldZ_ref() = BAR;` instead of `FOO.set_fieldZ(BAR);`")]] 6777 ::some::valid::ns::unionTypeDef& set_fieldZ(T_containerStruct_fieldZ_struct_setter&& fieldZ_) { 6778 fieldZ_ref() = std::forward<T_containerStruct_fieldZ_struct_setter>(fieldZ_); 6779 return fieldZ; 6780 } 6781 const ::std::vector<::some::valid::ns::unionTypeDef>& get_fieldAA() const&; 6782 ::std::vector<::some::valid::ns::unionTypeDef> get_fieldAA() &&; 6783 6784 template <typename T_containerStruct_fieldAA_struct_setter = ::std::vector<::some::valid::ns::unionTypeDef>> 6785 [[deprecated("Use `FOO.fieldAA_ref() = BAR;` instead of `FOO.set_fieldAA(BAR);`")]] 6786 ::std::vector<::some::valid::ns::unionTypeDef>& set_fieldAA(T_containerStruct_fieldAA_struct_setter&& fieldAA_) { 6787 fieldAA_ref() = std::forward<T_containerStruct_fieldAA_struct_setter>(fieldAA_); 6788 return fieldAA; 6789 } 6790 const ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>& get_fieldAB() const&; 6791 ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC> get_fieldAB() &&; 6792 6793 template <typename T_containerStruct_fieldAB_struct_setter = ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>> 6794 [[deprecated("Use `FOO.fieldAB_ref() = BAR;` instead of `FOO.set_fieldAB(BAR);`")]] 6795 ::std::map<::some::valid::ns::IndirectionB, ::some::valid::ns::IndirectionC>& set_fieldAB(T_containerStruct_fieldAB_struct_setter&& fieldAB_) { 6796 fieldAB_ref() = std::forward<T_containerStruct_fieldAB_struct_setter>(fieldAB_); 6797 return fieldAB; 6798 } 6799 6800 ::some::valid::ns::MyEnumB get_fieldAC() const { 6801 return fieldAC; 6802 } 6803 6804 [[deprecated("Use `FOO.fieldAC_ref() = BAR;` instead of `FOO.set_fieldAC(BAR);`")]] 6805 ::some::valid::ns::MyEnumB& set_fieldAC(::some::valid::ns::MyEnumB fieldAC_) { 6806 fieldAC_ref() = fieldAC_; 6807 return fieldAC; 6808 } 6809 6810 ::a::different::ns::AnEnum get_fieldAD() const { 6811 return fieldAD; 6812 } 6813 6814 [[deprecated("Use `FOO.fieldAD_ref() = BAR;` instead of `FOO.set_fieldAD(BAR);`")]] 6815 ::a::different::ns::AnEnum& set_fieldAD(::a::different::ns::AnEnum fieldAD_) { 6816 fieldAD_ref() = fieldAD_; 6817 return fieldAD; 6818 } 6819 const ::std::map<::std::string, ::std::int32_t>& get_fieldAE() const&; 6820 ::std::map<::std::string, ::std::int32_t> get_fieldAE() &&; 6821 6822 template <typename T_containerStruct_fieldAE_struct_setter = ::std::map<::std::string, ::std::int32_t>> 6823 [[deprecated("Use `FOO.fieldAE_ref() = BAR;` instead of `FOO.set_fieldAE(BAR);`")]] 6824 ::std::map<::std::string, ::std::int32_t>& set_fieldAE(T_containerStruct_fieldAE_struct_setter&& fieldAE_) { 6825 fieldAE_ref() = std::forward<T_containerStruct_fieldAE_struct_setter>(fieldAE_); 6826 return fieldAE; 6827 } 6828 6829 const ::some::valid::ns::IndirectionD& get_fieldSD() const& { 6830 return fieldSD; 6831 } 6832 6833 ::some::valid::ns::IndirectionD get_fieldSD() && { 6834 return std::move(fieldSD); 6835 } 6836 6837 template <typename T_containerStruct_fieldSD_struct_setter = ::some::valid::ns::IndirectionD> 6838 [[deprecated("Use `FOO.fieldSD_ref() = BAR;` instead of `FOO.set_fieldSD(BAR);`")]] 6839 ::some::valid::ns::IndirectionD& set_fieldSD(T_containerStruct_fieldSD_struct_setter&& fieldSD_) { 6840 fieldSD_ref() = std::forward<T_containerStruct_fieldSD_struct_setter>(fieldSD_); 6841 return fieldSD; 6842 } 6843 6844 template <class Protocol_> 6845 uint32_t read(Protocol_* iprot); 6846 template <class Protocol_> 6847 uint32_t serializedSize(Protocol_ const* prot_) const; 6848 template <class Protocol_> 6849 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 6850 template <class Protocol_> 6851 uint32_t write(Protocol_* prot_) const; 6852 // user defined code (cpp2.methods = ...) 6853 void foo(const std::string& bar) {} 6854 6855 private: 6856 template <class Protocol_> 6857 void readNoXfer(Protocol_* iprot); 6858 6859 friend class ::apache::thrift::Cpp2Ops<containerStruct>; 6860 friend void swap(containerStruct& a, containerStruct& b); 6861 }; 6862 6863 template <class Protocol_> 6864 uint32_t containerStruct::read(Protocol_* iprot) { 6865 auto _xferStart = iprot->getCursorPosition(); 6866 readNoXfer(iprot); 6867 return iprot->getCursorPosition() - _xferStart; 6868 } 6869 6870 }}} // some::valid::ns 6871 namespace some { namespace valid { namespace ns { 6872 class MyIncludedStruct final { 6873 private: 6874 friend struct ::apache::thrift::detail::st::struct_private_access; 6875 6876 // used by a static_assert in the corresponding source 6877 static constexpr bool __fbthrift_cpp2_gen_json = true; 6878 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 6879 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 6880 6881 void __fbthrift_clear(); 6882 6883 public: 6884 using __fbthrift_cpp2_type = MyIncludedStruct; 6885 static constexpr bool __fbthrift_cpp2_is_union = 6886 false; 6887 6888 6889 public: 6890 6891 MyIncludedStruct() : 6892 __fbthrift_field_MyIncludedInt(static_cast<::a::different::ns::IncludedInt64>(42)), 6893 ARefField(std::make_unique<::some::valid::ns::AStruct>()) { 6894 } 6895 // FragileConstructor for use in initialization lists only. 6896 [[deprecated("This constructor is deprecated")]] 6897 MyIncludedStruct(apache::thrift::FragileConstructor, ::a::different::ns::IncludedInt64 MyIncludedInt__arg, ::some::valid::ns::AStruct MyIncludedStruct__arg, ::std::unique_ptr<::some::valid::ns::AStruct> ARefField__arg, ::some::valid::ns::AStruct ARequiredField__arg); 6898 6899 MyIncludedStruct(MyIncludedStruct&&) noexcept; 6900 MyIncludedStruct(const MyIncludedStruct& src); 6901 6902 6903 MyIncludedStruct& operator=(MyIncludedStruct&&) noexcept; 6904 MyIncludedStruct& operator=(const MyIncludedStruct& src); 6905 private: 6906 ::a::different::ns::IncludedInt64 __fbthrift_field_MyIncludedInt; 6907 private: 6908 ::some::valid::ns::AStruct __fbthrift_field_MyIncludedStruct; 6909 public: 6910 ::std::unique_ptr<::some::valid::ns::AStruct> ARefField; 6911 public: 6912 ::some::valid::ns::AStruct ARequiredField; 6913 private: 6914 apache::thrift::detail::isset_bitset<2, false> __isset; 6915 6916 public: 6917 6918 bool operator==(const MyIncludedStruct&) const; 6919 bool operator<(const MyIncludedStruct&) const; 6920 6921 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6922 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIncludedInt_ref() const& { 6923 return {this->__fbthrift_field_MyIncludedInt, __isset.at(0), __isset.bit(0)}; 6924 } 6925 6926 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6927 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIncludedInt_ref() const&& { 6928 return {static_cast<const T&&>(this->__fbthrift_field_MyIncludedInt), __isset.at(0), __isset.bit(0)}; 6929 } 6930 6931 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6932 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIncludedInt_ref() & { 6933 return {this->__fbthrift_field_MyIncludedInt, __isset.at(0), __isset.bit(0)}; 6934 } 6935 6936 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6937 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIncludedInt_ref() && { 6938 return {static_cast<T&&>(this->__fbthrift_field_MyIncludedInt), __isset.at(0), __isset.bit(0)}; 6939 } 6940 6941 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6942 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIncludedInt() const& { 6943 return {this->__fbthrift_field_MyIncludedInt, __isset.at(0), __isset.bit(0)}; 6944 } 6945 6946 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6947 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIncludedInt() const&& { 6948 return {static_cast<const T&&>(this->__fbthrift_field_MyIncludedInt), __isset.at(0), __isset.bit(0)}; 6949 } 6950 6951 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6952 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIncludedInt() & { 6953 return {this->__fbthrift_field_MyIncludedInt, __isset.at(0), __isset.bit(0)}; 6954 } 6955 6956 template <typename..., typename T = ::a::different::ns::IncludedInt64> 6957 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIncludedInt() && { 6958 return {static_cast<T&&>(this->__fbthrift_field_MyIncludedInt), __isset.at(0), __isset.bit(0)}; 6959 } 6960 6961 template <typename..., typename T = ::some::valid::ns::AStruct> 6962 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIncludedStruct_ref() const& { 6963 return {this->__fbthrift_field_MyIncludedStruct, __isset.at(1), __isset.bit(1)}; 6964 } 6965 6966 template <typename..., typename T = ::some::valid::ns::AStruct> 6967 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIncludedStruct_ref() const&& { 6968 return {static_cast<const T&&>(this->__fbthrift_field_MyIncludedStruct), __isset.at(1), __isset.bit(1)}; 6969 } 6970 6971 template <typename..., typename T = ::some::valid::ns::AStruct> 6972 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIncludedStruct_ref() & { 6973 return {this->__fbthrift_field_MyIncludedStruct, __isset.at(1), __isset.bit(1)}; 6974 } 6975 6976 template <typename..., typename T = ::some::valid::ns::AStruct> 6977 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIncludedStruct_ref() && { 6978 return {static_cast<T&&>(this->__fbthrift_field_MyIncludedStruct), __isset.at(1), __isset.bit(1)}; 6979 } 6980 6981 template <typename..., typename T = ::some::valid::ns::AStruct> 6982 FOLLY_ERASE ::apache::thrift::field_ref<const T&> MyIncludedStruct() const& { 6983 return {this->__fbthrift_field_MyIncludedStruct, __isset.at(1), __isset.bit(1)}; 6984 } 6985 6986 template <typename..., typename T = ::some::valid::ns::AStruct> 6987 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> MyIncludedStruct() const&& { 6988 return {static_cast<const T&&>(this->__fbthrift_field_MyIncludedStruct), __isset.at(1), __isset.bit(1)}; 6989 } 6990 6991 template <typename..., typename T = ::some::valid::ns::AStruct> 6992 FOLLY_ERASE ::apache::thrift::field_ref<T&> MyIncludedStruct() & { 6993 return {this->__fbthrift_field_MyIncludedStruct, __isset.at(1), __isset.bit(1)}; 6994 } 6995 6996 template <typename..., typename T = ::some::valid::ns::AStruct> 6997 FOLLY_ERASE ::apache::thrift::field_ref<T&&> MyIncludedStruct() && { 6998 return {static_cast<T&&>(this->__fbthrift_field_MyIncludedStruct), __isset.at(1), __isset.bit(1)}; 6999 } 7000 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::AStruct>> 7001 FOLLY_ERASE T& ARefField_ref() & { return ARefField; } 7002 7003 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::AStruct>> 7004 FOLLY_ERASE const T& ARefField_ref() const& { return ARefField; } 7005 7006 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::AStruct>> 7007 FOLLY_ERASE T&& ARefField_ref() && { return static_cast<T&&>(ARefField); } 7008 7009 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::AStruct>> 7010 FOLLY_ERASE const T&& ARefField_ref() const&& { return static_cast<const T&&>(ARefField); } 7011 7012 template <typename..., typename T = ::some::valid::ns::AStruct> 7013 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> ARequiredField_ref() const& { 7014 return ::apache::thrift::required_field_ref<const T&>{this->ARequiredField}; 7015 } 7016 7017 template <typename..., typename T = ::some::valid::ns::AStruct> 7018 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> ARequiredField_ref() const&& { 7019 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->ARequiredField)}; 7020 } 7021 7022 template <typename..., typename T = ::some::valid::ns::AStruct> 7023 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> ARequiredField_ref() & { 7024 return ::apache::thrift::required_field_ref<T&>{this->ARequiredField}; 7025 } 7026 7027 template <typename..., typename T = ::some::valid::ns::AStruct> 7028 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> ARequiredField_ref() && { 7029 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->ARequiredField)}; 7030 } 7031 7032 ::a::different::ns::IncludedInt64 get_MyIncludedInt() const { 7033 return __fbthrift_field_MyIncludedInt; 7034 } 7035 7036 [[deprecated("Use `FOO.MyIncludedInt_ref() = BAR;` instead of `FOO.set_MyIncludedInt(BAR);`")]] 7037 ::a::different::ns::IncludedInt64& set_MyIncludedInt(::a::different::ns::IncludedInt64 MyIncludedInt_) { 7038 MyIncludedInt_ref() = MyIncludedInt_; 7039 return __fbthrift_field_MyIncludedInt; 7040 } 7041 const ::some::valid::ns::AStruct& get_MyIncludedStruct() const&; 7042 ::some::valid::ns::AStruct get_MyIncludedStruct() &&; 7043 7044 template <typename T_MyIncludedStruct_MyIncludedStruct_struct_setter = ::some::valid::ns::AStruct> 7045 [[deprecated("Use `FOO.MyIncludedStruct_ref() = BAR;` instead of `FOO.set_MyIncludedStruct(BAR);`")]] 7046 ::some::valid::ns::AStruct& set_MyIncludedStruct(T_MyIncludedStruct_MyIncludedStruct_struct_setter&& MyIncludedStruct_) { 7047 MyIncludedStruct_ref() = std::forward<T_MyIncludedStruct_MyIncludedStruct_struct_setter>(MyIncludedStruct_); 7048 return __fbthrift_field_MyIncludedStruct; 7049 } 7050 const ::some::valid::ns::AStruct& get_ARequiredField() const&; 7051 ::some::valid::ns::AStruct get_ARequiredField() &&; 7052 7053 template <typename T_MyIncludedStruct_ARequiredField_struct_setter = ::some::valid::ns::AStruct> 7054 [[deprecated("Use `FOO.ARequiredField_ref() = BAR;` instead of `FOO.set_ARequiredField(BAR);`")]] 7055 ::some::valid::ns::AStruct& set_ARequiredField(T_MyIncludedStruct_ARequiredField_struct_setter&& ARequiredField_) { 7056 ARequiredField_ref() = std::forward<T_MyIncludedStruct_ARequiredField_struct_setter>(ARequiredField_); 7057 return ARequiredField; 7058 } 7059 7060 template <class Protocol_> 7061 uint32_t read(Protocol_* iprot); 7062 template <class Protocol_> 7063 uint32_t serializedSize(Protocol_ const* prot_) const; 7064 template <class Protocol_> 7065 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 7066 template <class Protocol_> 7067 uint32_t write(Protocol_* prot_) const; 7068 7069 private: 7070 template <class Protocol_> 7071 void readNoXfer(Protocol_* iprot); 7072 7073 friend class ::apache::thrift::Cpp2Ops<MyIncludedStruct>; 7074 friend void swap(MyIncludedStruct& a, MyIncludedStruct& b); 7075 }; 7076 7077 template <class Protocol_> 7078 uint32_t MyIncludedStruct::read(Protocol_* iprot) { 7079 auto _xferStart = iprot->getCursorPosition(); 7080 readNoXfer(iprot); 7081 return iprot->getCursorPosition() - _xferStart; 7082 } 7083 7084 }}} // some::valid::ns 7085 namespace some { namespace valid { namespace ns { 7086 class AnnotatedStruct { 7087 private: 7088 friend struct ::apache::thrift::detail::st::struct_private_access; 7089 7090 // used by a static_assert in the corresponding source 7091 static constexpr bool __fbthrift_cpp2_gen_json = true; 7092 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7093 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7094 7095 void __fbthrift_clear(); 7096 7097 public: 7098 using __fbthrift_cpp2_type = AnnotatedStruct; 7099 static constexpr bool __fbthrift_cpp2_is_union = 7100 false; 7101 7102 7103 public: 7104 7105 AnnotatedStruct(); 7106 7107 // FragileConstructor for use in initialization lists only. 7108 [[deprecated("This constructor is deprecated")]] 7109 AnnotatedStruct(apache::thrift::FragileConstructor, ::some::valid::ns::containerStruct no_annotation__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> cpp_unique_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> cpp2_unique_ref__arg, ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>> container_with_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> req_cpp_unique_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> req_cpp2_unique_ref__arg, ::std::unique_ptr<::std::vector<::std::string>> req_container_with_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> opt_cpp_unique_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> opt_cpp2_unique_ref__arg, ::std::unique_ptr<::std::set<::std::int32_t>> opt_container_with_ref__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> ref_type_unique__arg, ::std::shared_ptr<::some::valid::ns::containerStruct> ref_type_shared__arg, ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>> ref_type_const__arg, ::std::shared_ptr<::some::valid::ns::containerStruct> req_ref_type_shared__arg, ::std::shared_ptr<const ::some::valid::ns::containerStruct> req_ref_type_const__arg, ::std::unique_ptr<::std::vector<::std::string>> req_ref_type_unique__arg, ::std::shared_ptr<const ::some::valid::ns::containerStruct> opt_ref_type_const__arg, ::std::unique_ptr<::some::valid::ns::containerStruct> opt_ref_type_unique__arg, ::std::shared_ptr<::std::set<::std::int32_t>> opt_ref_type_shared__arg, ::some::valid::ns::CppFakeI32 base_type__arg, ::some::valid::ns::FollySmallVectorI64 list_type__arg, ::some::valid::ns::SortedVectorSetString set_type__arg, ::some::valid::ns::FakeMap map_type__arg, ::some::valid::ns::UnorderedMapStruct map_struct_type__arg, ::some::valid::ns::IOBuf iobuf_type__arg, ::some::valid::ns::IOBufPtr iobuf_ptr__arg, std::list<::std::int32_t> list_i32_template__arg, std::deque<::std::string> list_string_template__arg, folly::sorted_vector_set<::std::string> set_template__arg, folly::sorted_vector_map<::std::int64_t, ::std::string> map_template__arg, ::some::valid::ns::std_list typedef_list_template__arg, ::some::valid::ns::std_deque typedef_deque_template__arg, ::some::valid::ns::folly_set typedef_set_template__arg, ::some::valid::ns::folly_map typedef_map_template__arg, ::some::valid::ns::IndirectionA indirection_a__arg, ::std::vector<::some::valid::ns::IndirectionB> indirection_b__arg, ::std::set<::some::valid::ns::IndirectionC> indirection_c__arg, ::some::valid::ns::IOBuf iobuf_type_val__arg, ::some::valid::ns::IOBufPtr iobuf_ptr_val__arg, ::some::valid::ns::containerStruct struct_struct__arg); 7110 7111 AnnotatedStruct(AnnotatedStruct&&) = default; 7112 7113 7114 AnnotatedStruct& operator=(AnnotatedStruct&&) = default; 7115 7116 virtual ~AnnotatedStruct(); 7117 7118 private: 7119 ::some::valid::ns::containerStruct no_annotation; 7120 public: 7121 ::std::unique_ptr<::some::valid::ns::containerStruct> cpp_unique_ref; 7122 public: 7123 ::std::unique_ptr<::some::valid::ns::containerStruct> cpp2_unique_ref; 7124 public: 7125 ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>> container_with_ref; 7126 public: 7127 ::std::unique_ptr<::some::valid::ns::containerStruct> req_cpp_unique_ref; 7128 public: 7129 ::std::unique_ptr<::some::valid::ns::containerStruct> req_cpp2_unique_ref; 7130 public: 7131 ::std::unique_ptr<::std::vector<::std::string>> req_container_with_ref; 7132 public: 7133 ::std::unique_ptr<::some::valid::ns::containerStruct> opt_cpp_unique_ref; 7134 public: 7135 ::std::unique_ptr<::some::valid::ns::containerStruct> opt_cpp2_unique_ref; 7136 public: 7137 ::std::unique_ptr<::std::set<::std::int32_t>> opt_container_with_ref; 7138 public: 7139 ::std::unique_ptr<::some::valid::ns::containerStruct> ref_type_unique; 7140 public: 7141 ::std::shared_ptr<::some::valid::ns::containerStruct> ref_type_shared; 7142 public: 7143 ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>> ref_type_const; 7144 public: 7145 ::std::shared_ptr<::some::valid::ns::containerStruct> req_ref_type_shared; 7146 public: 7147 ::std::shared_ptr<const ::some::valid::ns::containerStruct> req_ref_type_const; 7148 public: 7149 ::std::unique_ptr<::std::vector<::std::string>> req_ref_type_unique; 7150 public: 7151 ::std::shared_ptr<const ::some::valid::ns::containerStruct> opt_ref_type_const; 7152 public: 7153 ::std::unique_ptr<::some::valid::ns::containerStruct> opt_ref_type_unique; 7154 public: 7155 ::std::shared_ptr<::std::set<::std::int32_t>> opt_ref_type_shared; 7156 private: 7157 ::some::valid::ns::CppFakeI32 base_type; 7158 private: 7159 ::some::valid::ns::FollySmallVectorI64 list_type; 7160 private: 7161 ::some::valid::ns::SortedVectorSetString set_type; 7162 private: 7163 ::some::valid::ns::FakeMap map_type; 7164 private: 7165 ::some::valid::ns::UnorderedMapStruct map_struct_type; 7166 private: 7167 ::some::valid::ns::IOBuf iobuf_type; 7168 public: 7169 ::some::valid::ns::IOBufPtr iobuf_ptr; 7170 private: 7171 std::list<::std::int32_t> list_i32_template; 7172 private: 7173 std::deque<::std::string> list_string_template; 7174 private: 7175 folly::sorted_vector_set<::std::string> set_template; 7176 private: 7177 folly::sorted_vector_map<::std::int64_t, ::std::string> map_template; 7178 private: 7179 ::some::valid::ns::std_list typedef_list_template; 7180 private: 7181 ::some::valid::ns::std_deque typedef_deque_template; 7182 private: 7183 ::some::valid::ns::folly_set typedef_set_template; 7184 private: 7185 ::some::valid::ns::folly_map typedef_map_template; 7186 private: 7187 ::some::valid::ns::IndirectionA indirection_a; 7188 private: 7189 ::std::vector<::some::valid::ns::IndirectionB> indirection_b; 7190 private: 7191 ::std::set<::some::valid::ns::IndirectionC> indirection_c; 7192 private: 7193 ::some::valid::ns::IOBuf iobuf_type_val; 7194 public: 7195 ::some::valid::ns::IOBufPtr iobuf_ptr_val; 7196 private: 7197 ::some::valid::ns::containerStruct struct_struct; 7198 private: 7199 apache::thrift::detail::isset_bitset<22, false> __isset; 7200 7201 public: 7202 7203 bool operator==(const AnnotatedStruct&) const; 7204 bool operator<(const AnnotatedStruct&) const; 7205 7206 template <typename..., typename T = ::some::valid::ns::containerStruct> 7207 FOLLY_ERASE ::apache::thrift::field_ref<const T&> no_annotation_ref() const& { 7208 return {this->no_annotation, __isset.at(0), __isset.bit(0)}; 7209 } 7210 7211 template <typename..., typename T = ::some::valid::ns::containerStruct> 7212 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> no_annotation_ref() const&& { 7213 return {static_cast<const T&&>(this->no_annotation), __isset.at(0), __isset.bit(0)}; 7214 } 7215 7216 template <typename..., typename T = ::some::valid::ns::containerStruct> 7217 FOLLY_ERASE ::apache::thrift::field_ref<T&> no_annotation_ref() & { 7218 return {this->no_annotation, __isset.at(0), __isset.bit(0)}; 7219 } 7220 7221 template <typename..., typename T = ::some::valid::ns::containerStruct> 7222 FOLLY_ERASE ::apache::thrift::field_ref<T&&> no_annotation_ref() && { 7223 return {static_cast<T&&>(this->no_annotation), __isset.at(0), __isset.bit(0)}; 7224 } 7225 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7226 FOLLY_ERASE T& cpp_unique_ref_ref() & { return cpp_unique_ref; } 7227 7228 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7229 FOLLY_ERASE const T& cpp_unique_ref_ref() const& { return cpp_unique_ref; } 7230 7231 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7232 FOLLY_ERASE T&& cpp_unique_ref_ref() && { return static_cast<T&&>(cpp_unique_ref); } 7233 7234 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7235 FOLLY_ERASE const T&& cpp_unique_ref_ref() const&& { return static_cast<const T&&>(cpp_unique_ref); } 7236 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7237 FOLLY_ERASE T& cpp2_unique_ref_ref() & { return cpp2_unique_ref; } 7238 7239 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7240 FOLLY_ERASE const T& cpp2_unique_ref_ref() const& { return cpp2_unique_ref; } 7241 7242 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7243 FOLLY_ERASE T&& cpp2_unique_ref_ref() && { return static_cast<T&&>(cpp2_unique_ref); } 7244 7245 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7246 FOLLY_ERASE const T&& cpp2_unique_ref_ref() const&& { return static_cast<const T&&>(cpp2_unique_ref); } 7247 template <typename ..., typename T = ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7248 FOLLY_ERASE T& container_with_ref_ref() & { return container_with_ref; } 7249 7250 template <typename ..., typename T = ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7251 FOLLY_ERASE const T& container_with_ref_ref() const& { return container_with_ref; } 7252 7253 template <typename ..., typename T = ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7254 FOLLY_ERASE T&& container_with_ref_ref() && { return static_cast<T&&>(container_with_ref); } 7255 7256 template <typename ..., typename T = ::std::unique_ptr<::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7257 FOLLY_ERASE const T&& container_with_ref_ref() const&& { return static_cast<const T&&>(container_with_ref); } 7258 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7259 FOLLY_ERASE T& req_cpp_unique_ref_ref() & { return req_cpp_unique_ref; } 7260 7261 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7262 FOLLY_ERASE const T& req_cpp_unique_ref_ref() const& { return req_cpp_unique_ref; } 7263 7264 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7265 FOLLY_ERASE T&& req_cpp_unique_ref_ref() && { return static_cast<T&&>(req_cpp_unique_ref); } 7266 7267 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7268 FOLLY_ERASE const T&& req_cpp_unique_ref_ref() const&& { return static_cast<const T&&>(req_cpp_unique_ref); } 7269 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7270 FOLLY_ERASE T& req_cpp2_unique_ref_ref() & { return req_cpp2_unique_ref; } 7271 7272 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7273 FOLLY_ERASE const T& req_cpp2_unique_ref_ref() const& { return req_cpp2_unique_ref; } 7274 7275 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7276 FOLLY_ERASE T&& req_cpp2_unique_ref_ref() && { return static_cast<T&&>(req_cpp2_unique_ref); } 7277 7278 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7279 FOLLY_ERASE const T&& req_cpp2_unique_ref_ref() const&& { return static_cast<const T&&>(req_cpp2_unique_ref); } 7280 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7281 FOLLY_ERASE T& req_container_with_ref_ref() & { return req_container_with_ref; } 7282 7283 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7284 FOLLY_ERASE const T& req_container_with_ref_ref() const& { return req_container_with_ref; } 7285 7286 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7287 FOLLY_ERASE T&& req_container_with_ref_ref() && { return static_cast<T&&>(req_container_with_ref); } 7288 7289 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7290 FOLLY_ERASE const T&& req_container_with_ref_ref() const&& { return static_cast<const T&&>(req_container_with_ref); } 7291 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7292 FOLLY_ERASE T& opt_cpp_unique_ref_ref() & { return opt_cpp_unique_ref; } 7293 7294 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7295 FOLLY_ERASE const T& opt_cpp_unique_ref_ref() const& { return opt_cpp_unique_ref; } 7296 7297 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7298 FOLLY_ERASE T&& opt_cpp_unique_ref_ref() && { return static_cast<T&&>(opt_cpp_unique_ref); } 7299 7300 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7301 FOLLY_ERASE const T&& opt_cpp_unique_ref_ref() const&& { return static_cast<const T&&>(opt_cpp_unique_ref); } 7302 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7303 FOLLY_ERASE T& opt_cpp2_unique_ref_ref() & { return opt_cpp2_unique_ref; } 7304 7305 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7306 FOLLY_ERASE const T& opt_cpp2_unique_ref_ref() const& { return opt_cpp2_unique_ref; } 7307 7308 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7309 FOLLY_ERASE T&& opt_cpp2_unique_ref_ref() && { return static_cast<T&&>(opt_cpp2_unique_ref); } 7310 7311 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7312 FOLLY_ERASE const T&& opt_cpp2_unique_ref_ref() const&& { return static_cast<const T&&>(opt_cpp2_unique_ref); } 7313 template <typename ..., typename T = ::std::unique_ptr<::std::set<::std::int32_t>>> 7314 FOLLY_ERASE T& opt_container_with_ref_ref() & { return opt_container_with_ref; } 7315 7316 template <typename ..., typename T = ::std::unique_ptr<::std::set<::std::int32_t>>> 7317 FOLLY_ERASE const T& opt_container_with_ref_ref() const& { return opt_container_with_ref; } 7318 7319 template <typename ..., typename T = ::std::unique_ptr<::std::set<::std::int32_t>>> 7320 FOLLY_ERASE T&& opt_container_with_ref_ref() && { return static_cast<T&&>(opt_container_with_ref); } 7321 7322 template <typename ..., typename T = ::std::unique_ptr<::std::set<::std::int32_t>>> 7323 FOLLY_ERASE const T&& opt_container_with_ref_ref() const&& { return static_cast<const T&&>(opt_container_with_ref); } 7324 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7325 FOLLY_ERASE T& ref_type_unique_ref() & { return ref_type_unique; } 7326 7327 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7328 FOLLY_ERASE const T& ref_type_unique_ref() const& { return ref_type_unique; } 7329 7330 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7331 FOLLY_ERASE T&& ref_type_unique_ref() && { return static_cast<T&&>(ref_type_unique); } 7332 7333 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7334 FOLLY_ERASE const T&& ref_type_unique_ref() const&& { return static_cast<const T&&>(ref_type_unique); } 7335 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7336 FOLLY_ERASE T& ref_type_shared_ref() & { return ref_type_shared; } 7337 7338 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7339 FOLLY_ERASE const T& ref_type_shared_ref() const& { return ref_type_shared; } 7340 7341 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7342 FOLLY_ERASE T&& ref_type_shared_ref() && { return static_cast<T&&>(ref_type_shared); } 7343 7344 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7345 FOLLY_ERASE const T&& ref_type_shared_ref() const&& { return static_cast<const T&&>(ref_type_shared); } 7346 template <typename ..., typename T = ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7347 FOLLY_ERASE T& ref_type_const_ref() & { return ref_type_const; } 7348 7349 template <typename ..., typename T = ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7350 FOLLY_ERASE const T& ref_type_const_ref() const& { return ref_type_const; } 7351 7352 template <typename ..., typename T = ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7353 FOLLY_ERASE T&& ref_type_const_ref() && { return static_cast<T&&>(ref_type_const); } 7354 7355 template <typename ..., typename T = ::std::shared_ptr<const ::std::map<::std::int32_t, ::std::vector<::std::string>>>> 7356 FOLLY_ERASE const T&& ref_type_const_ref() const&& { return static_cast<const T&&>(ref_type_const); } 7357 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7358 FOLLY_ERASE T& req_ref_type_shared_ref() & { return req_ref_type_shared; } 7359 7360 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7361 FOLLY_ERASE const T& req_ref_type_shared_ref() const& { return req_ref_type_shared; } 7362 7363 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7364 FOLLY_ERASE T&& req_ref_type_shared_ref() && { return static_cast<T&&>(req_ref_type_shared); } 7365 7366 template <typename ..., typename T = ::std::shared_ptr<::some::valid::ns::containerStruct>> 7367 FOLLY_ERASE const T&& req_ref_type_shared_ref() const&& { return static_cast<const T&&>(req_ref_type_shared); } 7368 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7369 FOLLY_ERASE T& req_ref_type_const_ref() & { return req_ref_type_const; } 7370 7371 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7372 FOLLY_ERASE const T& req_ref_type_const_ref() const& { return req_ref_type_const; } 7373 7374 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7375 FOLLY_ERASE T&& req_ref_type_const_ref() && { return static_cast<T&&>(req_ref_type_const); } 7376 7377 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7378 FOLLY_ERASE const T&& req_ref_type_const_ref() const&& { return static_cast<const T&&>(req_ref_type_const); } 7379 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7380 FOLLY_ERASE T& req_ref_type_unique_ref() & { return req_ref_type_unique; } 7381 7382 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7383 FOLLY_ERASE const T& req_ref_type_unique_ref() const& { return req_ref_type_unique; } 7384 7385 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7386 FOLLY_ERASE T&& req_ref_type_unique_ref() && { return static_cast<T&&>(req_ref_type_unique); } 7387 7388 template <typename ..., typename T = ::std::unique_ptr<::std::vector<::std::string>>> 7389 FOLLY_ERASE const T&& req_ref_type_unique_ref() const&& { return static_cast<const T&&>(req_ref_type_unique); } 7390 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7391 FOLLY_ERASE T& opt_ref_type_const_ref() & { return opt_ref_type_const; } 7392 7393 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7394 FOLLY_ERASE const T& opt_ref_type_const_ref() const& { return opt_ref_type_const; } 7395 7396 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7397 FOLLY_ERASE T&& opt_ref_type_const_ref() && { return static_cast<T&&>(opt_ref_type_const); } 7398 7399 template <typename ..., typename T = ::std::shared_ptr<const ::some::valid::ns::containerStruct>> 7400 FOLLY_ERASE const T&& opt_ref_type_const_ref() const&& { return static_cast<const T&&>(opt_ref_type_const); } 7401 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7402 FOLLY_ERASE T& opt_ref_type_unique_ref() & { return opt_ref_type_unique; } 7403 7404 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7405 FOLLY_ERASE const T& opt_ref_type_unique_ref() const& { return opt_ref_type_unique; } 7406 7407 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7408 FOLLY_ERASE T&& opt_ref_type_unique_ref() && { return static_cast<T&&>(opt_ref_type_unique); } 7409 7410 template <typename ..., typename T = ::std::unique_ptr<::some::valid::ns::containerStruct>> 7411 FOLLY_ERASE const T&& opt_ref_type_unique_ref() const&& { return static_cast<const T&&>(opt_ref_type_unique); } 7412 template <typename ..., typename T = ::std::shared_ptr<::std::set<::std::int32_t>>> 7413 FOLLY_ERASE T& opt_ref_type_shared_ref() & { return opt_ref_type_shared; } 7414 7415 template <typename ..., typename T = ::std::shared_ptr<::std::set<::std::int32_t>>> 7416 FOLLY_ERASE const T& opt_ref_type_shared_ref() const& { return opt_ref_type_shared; } 7417 7418 template <typename ..., typename T = ::std::shared_ptr<::std::set<::std::int32_t>>> 7419 FOLLY_ERASE T&& opt_ref_type_shared_ref() && { return static_cast<T&&>(opt_ref_type_shared); } 7420 7421 template <typename ..., typename T = ::std::shared_ptr<::std::set<::std::int32_t>>> 7422 FOLLY_ERASE const T&& opt_ref_type_shared_ref() const&& { return static_cast<const T&&>(opt_ref_type_shared); } 7423 7424 template <typename..., typename T = ::some::valid::ns::CppFakeI32> 7425 FOLLY_ERASE ::apache::thrift::field_ref<const T&> base_type_ref() const& { 7426 return {this->base_type, __isset.at(1), __isset.bit(1)}; 7427 } 7428 7429 template <typename..., typename T = ::some::valid::ns::CppFakeI32> 7430 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> base_type_ref() const&& { 7431 return {static_cast<const T&&>(this->base_type), __isset.at(1), __isset.bit(1)}; 7432 } 7433 7434 template <typename..., typename T = ::some::valid::ns::CppFakeI32> 7435 FOLLY_ERASE ::apache::thrift::field_ref<T&> base_type_ref() & { 7436 return {this->base_type, __isset.at(1), __isset.bit(1)}; 7437 } 7438 7439 template <typename..., typename T = ::some::valid::ns::CppFakeI32> 7440 FOLLY_ERASE ::apache::thrift::field_ref<T&&> base_type_ref() && { 7441 return {static_cast<T&&>(this->base_type), __isset.at(1), __isset.bit(1)}; 7442 } 7443 7444 template <typename..., typename T = ::some::valid::ns::FollySmallVectorI64> 7445 FOLLY_ERASE ::apache::thrift::field_ref<const T&> list_type_ref() const& { 7446 return {this->list_type, __isset.at(2), __isset.bit(2)}; 7447 } 7448 7449 template <typename..., typename T = ::some::valid::ns::FollySmallVectorI64> 7450 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> list_type_ref() const&& { 7451 return {static_cast<const T&&>(this->list_type), __isset.at(2), __isset.bit(2)}; 7452 } 7453 7454 template <typename..., typename T = ::some::valid::ns::FollySmallVectorI64> 7455 FOLLY_ERASE ::apache::thrift::field_ref<T&> list_type_ref() & { 7456 return {this->list_type, __isset.at(2), __isset.bit(2)}; 7457 } 7458 7459 template <typename..., typename T = ::some::valid::ns::FollySmallVectorI64> 7460 FOLLY_ERASE ::apache::thrift::field_ref<T&&> list_type_ref() && { 7461 return {static_cast<T&&>(this->list_type), __isset.at(2), __isset.bit(2)}; 7462 } 7463 7464 template <typename..., typename T = ::some::valid::ns::SortedVectorSetString> 7465 FOLLY_ERASE ::apache::thrift::field_ref<const T&> set_type_ref() const& { 7466 return {this->set_type, __isset.at(3), __isset.bit(3)}; 7467 } 7468 7469 template <typename..., typename T = ::some::valid::ns::SortedVectorSetString> 7470 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> set_type_ref() const&& { 7471 return {static_cast<const T&&>(this->set_type), __isset.at(3), __isset.bit(3)}; 7472 } 7473 7474 template <typename..., typename T = ::some::valid::ns::SortedVectorSetString> 7475 FOLLY_ERASE ::apache::thrift::field_ref<T&> set_type_ref() & { 7476 return {this->set_type, __isset.at(3), __isset.bit(3)}; 7477 } 7478 7479 template <typename..., typename T = ::some::valid::ns::SortedVectorSetString> 7480 FOLLY_ERASE ::apache::thrift::field_ref<T&&> set_type_ref() && { 7481 return {static_cast<T&&>(this->set_type), __isset.at(3), __isset.bit(3)}; 7482 } 7483 7484 template <typename..., typename T = ::some::valid::ns::FakeMap> 7485 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_type_ref() const& { 7486 return {this->map_type, __isset.at(4), __isset.bit(4)}; 7487 } 7488 7489 template <typename..., typename T = ::some::valid::ns::FakeMap> 7490 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_type_ref() const&& { 7491 return {static_cast<const T&&>(this->map_type), __isset.at(4), __isset.bit(4)}; 7492 } 7493 7494 template <typename..., typename T = ::some::valid::ns::FakeMap> 7495 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_type_ref() & { 7496 return {this->map_type, __isset.at(4), __isset.bit(4)}; 7497 } 7498 7499 template <typename..., typename T = ::some::valid::ns::FakeMap> 7500 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_type_ref() && { 7501 return {static_cast<T&&>(this->map_type), __isset.at(4), __isset.bit(4)}; 7502 } 7503 7504 template <typename..., typename T = ::some::valid::ns::UnorderedMapStruct> 7505 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_struct_type_ref() const& { 7506 return {this->map_struct_type, __isset.at(5), __isset.bit(5)}; 7507 } 7508 7509 template <typename..., typename T = ::some::valid::ns::UnorderedMapStruct> 7510 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_struct_type_ref() const&& { 7511 return {static_cast<const T&&>(this->map_struct_type), __isset.at(5), __isset.bit(5)}; 7512 } 7513 7514 template <typename..., typename T = ::some::valid::ns::UnorderedMapStruct> 7515 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_struct_type_ref() & { 7516 return {this->map_struct_type, __isset.at(5), __isset.bit(5)}; 7517 } 7518 7519 template <typename..., typename T = ::some::valid::ns::UnorderedMapStruct> 7520 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_struct_type_ref() && { 7521 return {static_cast<T&&>(this->map_struct_type), __isset.at(5), __isset.bit(5)}; 7522 } 7523 7524 template <typename..., typename T = ::some::valid::ns::IOBuf> 7525 FOLLY_ERASE ::apache::thrift::field_ref<const T&> iobuf_type_ref() const& { 7526 return {this->iobuf_type, __isset.at(6), __isset.bit(6)}; 7527 } 7528 7529 template <typename..., typename T = ::some::valid::ns::IOBuf> 7530 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> iobuf_type_ref() const&& { 7531 return {static_cast<const T&&>(this->iobuf_type), __isset.at(6), __isset.bit(6)}; 7532 } 7533 7534 template <typename..., typename T = ::some::valid::ns::IOBuf> 7535 FOLLY_ERASE ::apache::thrift::field_ref<T&> iobuf_type_ref() & { 7536 return {this->iobuf_type, __isset.at(6), __isset.bit(6)}; 7537 } 7538 7539 template <typename..., typename T = ::some::valid::ns::IOBuf> 7540 FOLLY_ERASE ::apache::thrift::field_ref<T&&> iobuf_type_ref() && { 7541 return {static_cast<T&&>(this->iobuf_type), __isset.at(6), __isset.bit(6)}; 7542 } 7543 7544 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7545 FOLLY_ERASE ::apache::thrift::field_ref<const T&> iobuf_ptr_ref() const& { 7546 return {this->iobuf_ptr, __isset.at(7), __isset.bit(7)}; 7547 } 7548 7549 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7550 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> iobuf_ptr_ref() const&& { 7551 return {static_cast<const T&&>(this->iobuf_ptr), __isset.at(7), __isset.bit(7)}; 7552 } 7553 7554 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7555 FOLLY_ERASE ::apache::thrift::field_ref<T&> iobuf_ptr_ref() & { 7556 return {this->iobuf_ptr, __isset.at(7), __isset.bit(7)}; 7557 } 7558 7559 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7560 FOLLY_ERASE ::apache::thrift::field_ref<T&&> iobuf_ptr_ref() && { 7561 return {static_cast<T&&>(this->iobuf_ptr), __isset.at(7), __isset.bit(7)}; 7562 } 7563 7564 template <typename..., typename T = std::list<::std::int32_t>> 7565 FOLLY_ERASE ::apache::thrift::field_ref<const T&> list_i32_template_ref() const& { 7566 return {this->list_i32_template, __isset.at(8), __isset.bit(8)}; 7567 } 7568 7569 template <typename..., typename T = std::list<::std::int32_t>> 7570 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> list_i32_template_ref() const&& { 7571 return {static_cast<const T&&>(this->list_i32_template), __isset.at(8), __isset.bit(8)}; 7572 } 7573 7574 template <typename..., typename T = std::list<::std::int32_t>> 7575 FOLLY_ERASE ::apache::thrift::field_ref<T&> list_i32_template_ref() & { 7576 return {this->list_i32_template, __isset.at(8), __isset.bit(8)}; 7577 } 7578 7579 template <typename..., typename T = std::list<::std::int32_t>> 7580 FOLLY_ERASE ::apache::thrift::field_ref<T&&> list_i32_template_ref() && { 7581 return {static_cast<T&&>(this->list_i32_template), __isset.at(8), __isset.bit(8)}; 7582 } 7583 7584 template <typename..., typename T = std::deque<::std::string>> 7585 FOLLY_ERASE ::apache::thrift::field_ref<const T&> list_string_template_ref() const& { 7586 return {this->list_string_template, __isset.at(9), __isset.bit(9)}; 7587 } 7588 7589 template <typename..., typename T = std::deque<::std::string>> 7590 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> list_string_template_ref() const&& { 7591 return {static_cast<const T&&>(this->list_string_template), __isset.at(9), __isset.bit(9)}; 7592 } 7593 7594 template <typename..., typename T = std::deque<::std::string>> 7595 FOLLY_ERASE ::apache::thrift::field_ref<T&> list_string_template_ref() & { 7596 return {this->list_string_template, __isset.at(9), __isset.bit(9)}; 7597 } 7598 7599 template <typename..., typename T = std::deque<::std::string>> 7600 FOLLY_ERASE ::apache::thrift::field_ref<T&&> list_string_template_ref() && { 7601 return {static_cast<T&&>(this->list_string_template), __isset.at(9), __isset.bit(9)}; 7602 } 7603 7604 template <typename..., typename T = folly::sorted_vector_set<::std::string>> 7605 FOLLY_ERASE ::apache::thrift::field_ref<const T&> set_template_ref() const& { 7606 return {this->set_template, __isset.at(10), __isset.bit(10)}; 7607 } 7608 7609 template <typename..., typename T = folly::sorted_vector_set<::std::string>> 7610 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> set_template_ref() const&& { 7611 return {static_cast<const T&&>(this->set_template), __isset.at(10), __isset.bit(10)}; 7612 } 7613 7614 template <typename..., typename T = folly::sorted_vector_set<::std::string>> 7615 FOLLY_ERASE ::apache::thrift::field_ref<T&> set_template_ref() & { 7616 return {this->set_template, __isset.at(10), __isset.bit(10)}; 7617 } 7618 7619 template <typename..., typename T = folly::sorted_vector_set<::std::string>> 7620 FOLLY_ERASE ::apache::thrift::field_ref<T&&> set_template_ref() && { 7621 return {static_cast<T&&>(this->set_template), __isset.at(10), __isset.bit(10)}; 7622 } 7623 7624 template <typename..., typename T = folly::sorted_vector_map<::std::int64_t, ::std::string>> 7625 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_template_ref() const& { 7626 return {this->map_template, __isset.at(11), __isset.bit(11)}; 7627 } 7628 7629 template <typename..., typename T = folly::sorted_vector_map<::std::int64_t, ::std::string>> 7630 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_template_ref() const&& { 7631 return {static_cast<const T&&>(this->map_template), __isset.at(11), __isset.bit(11)}; 7632 } 7633 7634 template <typename..., typename T = folly::sorted_vector_map<::std::int64_t, ::std::string>> 7635 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_template_ref() & { 7636 return {this->map_template, __isset.at(11), __isset.bit(11)}; 7637 } 7638 7639 template <typename..., typename T = folly::sorted_vector_map<::std::int64_t, ::std::string>> 7640 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_template_ref() && { 7641 return {static_cast<T&&>(this->map_template), __isset.at(11), __isset.bit(11)}; 7642 } 7643 7644 template <typename..., typename T = ::some::valid::ns::std_list> 7645 FOLLY_ERASE ::apache::thrift::field_ref<const T&> typedef_list_template_ref() const& { 7646 return {this->typedef_list_template, __isset.at(12), __isset.bit(12)}; 7647 } 7648 7649 template <typename..., typename T = ::some::valid::ns::std_list> 7650 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> typedef_list_template_ref() const&& { 7651 return {static_cast<const T&&>(this->typedef_list_template), __isset.at(12), __isset.bit(12)}; 7652 } 7653 7654 template <typename..., typename T = ::some::valid::ns::std_list> 7655 FOLLY_ERASE ::apache::thrift::field_ref<T&> typedef_list_template_ref() & { 7656 return {this->typedef_list_template, __isset.at(12), __isset.bit(12)}; 7657 } 7658 7659 template <typename..., typename T = ::some::valid::ns::std_list> 7660 FOLLY_ERASE ::apache::thrift::field_ref<T&&> typedef_list_template_ref() && { 7661 return {static_cast<T&&>(this->typedef_list_template), __isset.at(12), __isset.bit(12)}; 7662 } 7663 7664 template <typename..., typename T = ::some::valid::ns::std_deque> 7665 FOLLY_ERASE ::apache::thrift::field_ref<const T&> typedef_deque_template_ref() const& { 7666 return {this->typedef_deque_template, __isset.at(13), __isset.bit(13)}; 7667 } 7668 7669 template <typename..., typename T = ::some::valid::ns::std_deque> 7670 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> typedef_deque_template_ref() const&& { 7671 return {static_cast<const T&&>(this->typedef_deque_template), __isset.at(13), __isset.bit(13)}; 7672 } 7673 7674 template <typename..., typename T = ::some::valid::ns::std_deque> 7675 FOLLY_ERASE ::apache::thrift::field_ref<T&> typedef_deque_template_ref() & { 7676 return {this->typedef_deque_template, __isset.at(13), __isset.bit(13)}; 7677 } 7678 7679 template <typename..., typename T = ::some::valid::ns::std_deque> 7680 FOLLY_ERASE ::apache::thrift::field_ref<T&&> typedef_deque_template_ref() && { 7681 return {static_cast<T&&>(this->typedef_deque_template), __isset.at(13), __isset.bit(13)}; 7682 } 7683 7684 template <typename..., typename T = ::some::valid::ns::folly_set> 7685 FOLLY_ERASE ::apache::thrift::field_ref<const T&> typedef_set_template_ref() const& { 7686 return {this->typedef_set_template, __isset.at(14), __isset.bit(14)}; 7687 } 7688 7689 template <typename..., typename T = ::some::valid::ns::folly_set> 7690 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> typedef_set_template_ref() const&& { 7691 return {static_cast<const T&&>(this->typedef_set_template), __isset.at(14), __isset.bit(14)}; 7692 } 7693 7694 template <typename..., typename T = ::some::valid::ns::folly_set> 7695 FOLLY_ERASE ::apache::thrift::field_ref<T&> typedef_set_template_ref() & { 7696 return {this->typedef_set_template, __isset.at(14), __isset.bit(14)}; 7697 } 7698 7699 template <typename..., typename T = ::some::valid::ns::folly_set> 7700 FOLLY_ERASE ::apache::thrift::field_ref<T&&> typedef_set_template_ref() && { 7701 return {static_cast<T&&>(this->typedef_set_template), __isset.at(14), __isset.bit(14)}; 7702 } 7703 7704 template <typename..., typename T = ::some::valid::ns::folly_map> 7705 FOLLY_ERASE ::apache::thrift::field_ref<const T&> typedef_map_template_ref() const& { 7706 return {this->typedef_map_template, __isset.at(15), __isset.bit(15)}; 7707 } 7708 7709 template <typename..., typename T = ::some::valid::ns::folly_map> 7710 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> typedef_map_template_ref() const&& { 7711 return {static_cast<const T&&>(this->typedef_map_template), __isset.at(15), __isset.bit(15)}; 7712 } 7713 7714 template <typename..., typename T = ::some::valid::ns::folly_map> 7715 FOLLY_ERASE ::apache::thrift::field_ref<T&> typedef_map_template_ref() & { 7716 return {this->typedef_map_template, __isset.at(15), __isset.bit(15)}; 7717 } 7718 7719 template <typename..., typename T = ::some::valid::ns::folly_map> 7720 FOLLY_ERASE ::apache::thrift::field_ref<T&&> typedef_map_template_ref() && { 7721 return {static_cast<T&&>(this->typedef_map_template), __isset.at(15), __isset.bit(15)}; 7722 } 7723 7724 template <typename..., typename T = ::some::valid::ns::IndirectionA> 7725 FOLLY_ERASE ::apache::thrift::field_ref<const T&> indirection_a_ref() const& { 7726 return {this->indirection_a, __isset.at(16), __isset.bit(16)}; 7727 } 7728 7729 template <typename..., typename T = ::some::valid::ns::IndirectionA> 7730 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> indirection_a_ref() const&& { 7731 return {static_cast<const T&&>(this->indirection_a), __isset.at(16), __isset.bit(16)}; 7732 } 7733 7734 template <typename..., typename T = ::some::valid::ns::IndirectionA> 7735 FOLLY_ERASE ::apache::thrift::field_ref<T&> indirection_a_ref() & { 7736 return {this->indirection_a, __isset.at(16), __isset.bit(16)}; 7737 } 7738 7739 template <typename..., typename T = ::some::valid::ns::IndirectionA> 7740 FOLLY_ERASE ::apache::thrift::field_ref<T&&> indirection_a_ref() && { 7741 return {static_cast<T&&>(this->indirection_a), __isset.at(16), __isset.bit(16)}; 7742 } 7743 7744 template <typename..., typename T = ::std::vector<::some::valid::ns::IndirectionB>> 7745 FOLLY_ERASE ::apache::thrift::field_ref<const T&> indirection_b_ref() const& { 7746 return {this->indirection_b, __isset.at(17), __isset.bit(17)}; 7747 } 7748 7749 template <typename..., typename T = ::std::vector<::some::valid::ns::IndirectionB>> 7750 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> indirection_b_ref() const&& { 7751 return {static_cast<const T&&>(this->indirection_b), __isset.at(17), __isset.bit(17)}; 7752 } 7753 7754 template <typename..., typename T = ::std::vector<::some::valid::ns::IndirectionB>> 7755 FOLLY_ERASE ::apache::thrift::field_ref<T&> indirection_b_ref() & { 7756 return {this->indirection_b, __isset.at(17), __isset.bit(17)}; 7757 } 7758 7759 template <typename..., typename T = ::std::vector<::some::valid::ns::IndirectionB>> 7760 FOLLY_ERASE ::apache::thrift::field_ref<T&&> indirection_b_ref() && { 7761 return {static_cast<T&&>(this->indirection_b), __isset.at(17), __isset.bit(17)}; 7762 } 7763 7764 template <typename..., typename T = ::std::set<::some::valid::ns::IndirectionC>> 7765 FOLLY_ERASE ::apache::thrift::field_ref<const T&> indirection_c_ref() const& { 7766 return {this->indirection_c, __isset.at(18), __isset.bit(18)}; 7767 } 7768 7769 template <typename..., typename T = ::std::set<::some::valid::ns::IndirectionC>> 7770 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> indirection_c_ref() const&& { 7771 return {static_cast<const T&&>(this->indirection_c), __isset.at(18), __isset.bit(18)}; 7772 } 7773 7774 template <typename..., typename T = ::std::set<::some::valid::ns::IndirectionC>> 7775 FOLLY_ERASE ::apache::thrift::field_ref<T&> indirection_c_ref() & { 7776 return {this->indirection_c, __isset.at(18), __isset.bit(18)}; 7777 } 7778 7779 template <typename..., typename T = ::std::set<::some::valid::ns::IndirectionC>> 7780 FOLLY_ERASE ::apache::thrift::field_ref<T&&> indirection_c_ref() && { 7781 return {static_cast<T&&>(this->indirection_c), __isset.at(18), __isset.bit(18)}; 7782 } 7783 7784 template <typename..., typename T = ::some::valid::ns::IOBuf> 7785 FOLLY_ERASE ::apache::thrift::field_ref<const T&> iobuf_type_val_ref() const& { 7786 return {this->iobuf_type_val, __isset.at(19), __isset.bit(19)}; 7787 } 7788 7789 template <typename..., typename T = ::some::valid::ns::IOBuf> 7790 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> iobuf_type_val_ref() const&& { 7791 return {static_cast<const T&&>(this->iobuf_type_val), __isset.at(19), __isset.bit(19)}; 7792 } 7793 7794 template <typename..., typename T = ::some::valid::ns::IOBuf> 7795 FOLLY_ERASE ::apache::thrift::field_ref<T&> iobuf_type_val_ref() & { 7796 return {this->iobuf_type_val, __isset.at(19), __isset.bit(19)}; 7797 } 7798 7799 template <typename..., typename T = ::some::valid::ns::IOBuf> 7800 FOLLY_ERASE ::apache::thrift::field_ref<T&&> iobuf_type_val_ref() && { 7801 return {static_cast<T&&>(this->iobuf_type_val), __isset.at(19), __isset.bit(19)}; 7802 } 7803 7804 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7805 FOLLY_ERASE ::apache::thrift::field_ref<const T&> iobuf_ptr_val_ref() const& { 7806 return {this->iobuf_ptr_val, __isset.at(20), __isset.bit(20)}; 7807 } 7808 7809 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7810 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> iobuf_ptr_val_ref() const&& { 7811 return {static_cast<const T&&>(this->iobuf_ptr_val), __isset.at(20), __isset.bit(20)}; 7812 } 7813 7814 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7815 FOLLY_ERASE ::apache::thrift::field_ref<T&> iobuf_ptr_val_ref() & { 7816 return {this->iobuf_ptr_val, __isset.at(20), __isset.bit(20)}; 7817 } 7818 7819 template <typename..., typename T = ::some::valid::ns::IOBufPtr> 7820 FOLLY_ERASE ::apache::thrift::field_ref<T&&> iobuf_ptr_val_ref() && { 7821 return {static_cast<T&&>(this->iobuf_ptr_val), __isset.at(20), __isset.bit(20)}; 7822 } 7823 7824 template <typename..., typename T = ::some::valid::ns::containerStruct> 7825 FOLLY_ERASE ::apache::thrift::field_ref<const T&> struct_struct_ref() const& { 7826 return {this->struct_struct, __isset.at(21), __isset.bit(21)}; 7827 } 7828 7829 template <typename..., typename T = ::some::valid::ns::containerStruct> 7830 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> struct_struct_ref() const&& { 7831 return {static_cast<const T&&>(this->struct_struct), __isset.at(21), __isset.bit(21)}; 7832 } 7833 7834 template <typename..., typename T = ::some::valid::ns::containerStruct> 7835 FOLLY_ERASE ::apache::thrift::field_ref<T&> struct_struct_ref() & { 7836 return {this->struct_struct, __isset.at(21), __isset.bit(21)}; 7837 } 7838 7839 template <typename..., typename T = ::some::valid::ns::containerStruct> 7840 FOLLY_ERASE ::apache::thrift::field_ref<T&&> struct_struct_ref() && { 7841 return {static_cast<T&&>(this->struct_struct), __isset.at(21), __isset.bit(21)}; 7842 } 7843 const ::some::valid::ns::containerStruct& get_no_annotation() const&; 7844 ::some::valid::ns::containerStruct get_no_annotation() &&; 7845 7846 template <typename T_AnnotatedStruct_no_annotation_struct_setter = ::some::valid::ns::containerStruct> 7847 [[deprecated("Use `FOO.no_annotation_ref() = BAR;` instead of `FOO.set_no_annotation(BAR);`")]] 7848 ::some::valid::ns::containerStruct& set_no_annotation(T_AnnotatedStruct_no_annotation_struct_setter&& no_annotation_) { 7849 no_annotation_ref() = std::forward<T_AnnotatedStruct_no_annotation_struct_setter>(no_annotation_); 7850 return no_annotation; 7851 } 7852 7853 ::some::valid::ns::CppFakeI32 get_base_type() const { 7854 return base_type; 7855 } 7856 7857 [[deprecated("Use `FOO.base_type_ref() = BAR;` instead of `FOO.set_base_type(BAR);`")]] 7858 ::some::valid::ns::CppFakeI32& set_base_type(::some::valid::ns::CppFakeI32 base_type_) { 7859 base_type_ref() = base_type_; 7860 return base_type; 7861 } 7862 const ::some::valid::ns::FollySmallVectorI64& get_list_type() const&; 7863 ::some::valid::ns::FollySmallVectorI64 get_list_type() &&; 7864 7865 template <typename T_AnnotatedStruct_list_type_struct_setter = ::some::valid::ns::FollySmallVectorI64> 7866 [[deprecated("Use `FOO.list_type_ref() = BAR;` instead of `FOO.set_list_type(BAR);`")]] 7867 ::some::valid::ns::FollySmallVectorI64& set_list_type(T_AnnotatedStruct_list_type_struct_setter&& list_type_) { 7868 list_type_ref() = std::forward<T_AnnotatedStruct_list_type_struct_setter>(list_type_); 7869 return list_type; 7870 } 7871 const ::some::valid::ns::SortedVectorSetString& get_set_type() const&; 7872 ::some::valid::ns::SortedVectorSetString get_set_type() &&; 7873 7874 template <typename T_AnnotatedStruct_set_type_struct_setter = ::some::valid::ns::SortedVectorSetString> 7875 [[deprecated("Use `FOO.set_type_ref() = BAR;` instead of `FOO.set_set_type(BAR);`")]] 7876 ::some::valid::ns::SortedVectorSetString& set_set_type(T_AnnotatedStruct_set_type_struct_setter&& set_type_) { 7877 set_type_ref() = std::forward<T_AnnotatedStruct_set_type_struct_setter>(set_type_); 7878 return set_type; 7879 } 7880 const ::some::valid::ns::FakeMap& get_map_type() const&; 7881 ::some::valid::ns::FakeMap get_map_type() &&; 7882 7883 template <typename T_AnnotatedStruct_map_type_struct_setter = ::some::valid::ns::FakeMap> 7884 [[deprecated("Use `FOO.map_type_ref() = BAR;` instead of `FOO.set_map_type(BAR);`")]] 7885 ::some::valid::ns::FakeMap& set_map_type(T_AnnotatedStruct_map_type_struct_setter&& map_type_) { 7886 map_type_ref() = std::forward<T_AnnotatedStruct_map_type_struct_setter>(map_type_); 7887 return map_type; 7888 } 7889 const ::some::valid::ns::UnorderedMapStruct& get_map_struct_type() const&; 7890 ::some::valid::ns::UnorderedMapStruct get_map_struct_type() &&; 7891 7892 template <typename T_AnnotatedStruct_map_struct_type_struct_setter = ::some::valid::ns::UnorderedMapStruct> 7893 [[deprecated("Use `FOO.map_struct_type_ref() = BAR;` instead of `FOO.set_map_struct_type(BAR);`")]] 7894 ::some::valid::ns::UnorderedMapStruct& set_map_struct_type(T_AnnotatedStruct_map_struct_type_struct_setter&& map_struct_type_) { 7895 map_struct_type_ref() = std::forward<T_AnnotatedStruct_map_struct_type_struct_setter>(map_struct_type_); 7896 return map_struct_type; 7897 } 7898 7899 const ::some::valid::ns::IOBuf& get_iobuf_type() const& { 7900 return iobuf_type; 7901 } 7902 7903 ::some::valid::ns::IOBuf get_iobuf_type() && { 7904 return std::move(iobuf_type); 7905 } 7906 7907 template <typename T_AnnotatedStruct_iobuf_type_struct_setter = ::some::valid::ns::IOBuf> 7908 [[deprecated("Use `FOO.iobuf_type_ref() = BAR;` instead of `FOO.set_iobuf_type(BAR);`")]] 7909 ::some::valid::ns::IOBuf& set_iobuf_type(T_AnnotatedStruct_iobuf_type_struct_setter&& iobuf_type_) { 7910 iobuf_type_ref() = std::forward<T_AnnotatedStruct_iobuf_type_struct_setter>(iobuf_type_); 7911 return iobuf_type; 7912 } 7913 7914 const ::some::valid::ns::IOBufPtr& get_iobuf_ptr() const& { 7915 return iobuf_ptr; 7916 } 7917 7918 ::some::valid::ns::IOBufPtr get_iobuf_ptr() && { 7919 return std::move(iobuf_ptr); 7920 } 7921 7922 template <typename T_AnnotatedStruct_iobuf_ptr_struct_setter = ::some::valid::ns::IOBufPtr> 7923 [[deprecated("Use `FOO.iobuf_ptr_ref() = BAR;` instead of `FOO.set_iobuf_ptr(BAR);`")]] 7924 ::some::valid::ns::IOBufPtr& set_iobuf_ptr(T_AnnotatedStruct_iobuf_ptr_struct_setter&& iobuf_ptr_) { 7925 iobuf_ptr_ref() = std::forward<T_AnnotatedStruct_iobuf_ptr_struct_setter>(iobuf_ptr_); 7926 return iobuf_ptr; 7927 } 7928 const std::list<::std::int32_t>& get_list_i32_template() const&; 7929 std::list<::std::int32_t> get_list_i32_template() &&; 7930 7931 template <typename T_AnnotatedStruct_list_i32_template_struct_setter = std::list<::std::int32_t>> 7932 [[deprecated("Use `FOO.list_i32_template_ref() = BAR;` instead of `FOO.set_list_i32_template(BAR);`")]] 7933 std::list<::std::int32_t>& set_list_i32_template(T_AnnotatedStruct_list_i32_template_struct_setter&& list_i32_template_) { 7934 list_i32_template_ref() = std::forward<T_AnnotatedStruct_list_i32_template_struct_setter>(list_i32_template_); 7935 return list_i32_template; 7936 } 7937 const std::deque<::std::string>& get_list_string_template() const&; 7938 std::deque<::std::string> get_list_string_template() &&; 7939 7940 template <typename T_AnnotatedStruct_list_string_template_struct_setter = std::deque<::std::string>> 7941 [[deprecated("Use `FOO.list_string_template_ref() = BAR;` instead of `FOO.set_list_string_template(BAR);`")]] 7942 std::deque<::std::string>& set_list_string_template(T_AnnotatedStruct_list_string_template_struct_setter&& list_string_template_) { 7943 list_string_template_ref() = std::forward<T_AnnotatedStruct_list_string_template_struct_setter>(list_string_template_); 7944 return list_string_template; 7945 } 7946 const folly::sorted_vector_set<::std::string>& get_set_template() const&; 7947 folly::sorted_vector_set<::std::string> get_set_template() &&; 7948 7949 template <typename T_AnnotatedStruct_set_template_struct_setter = folly::sorted_vector_set<::std::string>> 7950 [[deprecated("Use `FOO.set_template_ref() = BAR;` instead of `FOO.set_set_template(BAR);`")]] 7951 folly::sorted_vector_set<::std::string>& set_set_template(T_AnnotatedStruct_set_template_struct_setter&& set_template_) { 7952 set_template_ref() = std::forward<T_AnnotatedStruct_set_template_struct_setter>(set_template_); 7953 return set_template; 7954 } 7955 const folly::sorted_vector_map<::std::int64_t, ::std::string>& get_map_template() const&; 7956 folly::sorted_vector_map<::std::int64_t, ::std::string> get_map_template() &&; 7957 7958 template <typename T_AnnotatedStruct_map_template_struct_setter = folly::sorted_vector_map<::std::int64_t, ::std::string>> 7959 [[deprecated("Use `FOO.map_template_ref() = BAR;` instead of `FOO.set_map_template(BAR);`")]] 7960 folly::sorted_vector_map<::std::int64_t, ::std::string>& set_map_template(T_AnnotatedStruct_map_template_struct_setter&& map_template_) { 7961 map_template_ref() = std::forward<T_AnnotatedStruct_map_template_struct_setter>(map_template_); 7962 return map_template; 7963 } 7964 const ::some::valid::ns::std_list& get_typedef_list_template() const&; 7965 ::some::valid::ns::std_list get_typedef_list_template() &&; 7966 7967 template <typename T_AnnotatedStruct_typedef_list_template_struct_setter = ::some::valid::ns::std_list> 7968 [[deprecated("Use `FOO.typedef_list_template_ref() = BAR;` instead of `FOO.set_typedef_list_template(BAR);`")]] 7969 ::some::valid::ns::std_list& set_typedef_list_template(T_AnnotatedStruct_typedef_list_template_struct_setter&& typedef_list_template_) { 7970 typedef_list_template_ref() = std::forward<T_AnnotatedStruct_typedef_list_template_struct_setter>(typedef_list_template_); 7971 return typedef_list_template; 7972 } 7973 const ::some::valid::ns::std_deque& get_typedef_deque_template() const&; 7974 ::some::valid::ns::std_deque get_typedef_deque_template() &&; 7975 7976 template <typename T_AnnotatedStruct_typedef_deque_template_struct_setter = ::some::valid::ns::std_deque> 7977 [[deprecated("Use `FOO.typedef_deque_template_ref() = BAR;` instead of `FOO.set_typedef_deque_template(BAR);`")]] 7978 ::some::valid::ns::std_deque& set_typedef_deque_template(T_AnnotatedStruct_typedef_deque_template_struct_setter&& typedef_deque_template_) { 7979 typedef_deque_template_ref() = std::forward<T_AnnotatedStruct_typedef_deque_template_struct_setter>(typedef_deque_template_); 7980 return typedef_deque_template; 7981 } 7982 const ::some::valid::ns::folly_set& get_typedef_set_template() const&; 7983 ::some::valid::ns::folly_set get_typedef_set_template() &&; 7984 7985 template <typename T_AnnotatedStruct_typedef_set_template_struct_setter = ::some::valid::ns::folly_set> 7986 [[deprecated("Use `FOO.typedef_set_template_ref() = BAR;` instead of `FOO.set_typedef_set_template(BAR);`")]] 7987 ::some::valid::ns::folly_set& set_typedef_set_template(T_AnnotatedStruct_typedef_set_template_struct_setter&& typedef_set_template_) { 7988 typedef_set_template_ref() = std::forward<T_AnnotatedStruct_typedef_set_template_struct_setter>(typedef_set_template_); 7989 return typedef_set_template; 7990 } 7991 const ::some::valid::ns::folly_map& get_typedef_map_template() const&; 7992 ::some::valid::ns::folly_map get_typedef_map_template() &&; 7993 7994 template <typename T_AnnotatedStruct_typedef_map_template_struct_setter = ::some::valid::ns::folly_map> 7995 [[deprecated("Use `FOO.typedef_map_template_ref() = BAR;` instead of `FOO.set_typedef_map_template(BAR);`")]] 7996 ::some::valid::ns::folly_map& set_typedef_map_template(T_AnnotatedStruct_typedef_map_template_struct_setter&& typedef_map_template_) { 7997 typedef_map_template_ref() = std::forward<T_AnnotatedStruct_typedef_map_template_struct_setter>(typedef_map_template_); 7998 return typedef_map_template; 7999 } 8000 8001 ::some::valid::ns::IndirectionA get_indirection_a() const { 8002 return indirection_a; 8003 } 8004 8005 [[deprecated("Use `FOO.indirection_a_ref() = BAR;` instead of `FOO.set_indirection_a(BAR);`")]] 8006 ::some::valid::ns::IndirectionA& set_indirection_a(::some::valid::ns::IndirectionA indirection_a_) { 8007 indirection_a_ref() = indirection_a_; 8008 return indirection_a; 8009 } 8010 const ::std::vector<::some::valid::ns::IndirectionB>& get_indirection_b() const&; 8011 ::std::vector<::some::valid::ns::IndirectionB> get_indirection_b() &&; 8012 8013 template <typename T_AnnotatedStruct_indirection_b_struct_setter = ::std::vector<::some::valid::ns::IndirectionB>> 8014 [[deprecated("Use `FOO.indirection_b_ref() = BAR;` instead of `FOO.set_indirection_b(BAR);`")]] 8015 ::std::vector<::some::valid::ns::IndirectionB>& set_indirection_b(T_AnnotatedStruct_indirection_b_struct_setter&& indirection_b_) { 8016 indirection_b_ref() = std::forward<T_AnnotatedStruct_indirection_b_struct_setter>(indirection_b_); 8017 return indirection_b; 8018 } 8019 const ::std::set<::some::valid::ns::IndirectionC>& get_indirection_c() const&; 8020 ::std::set<::some::valid::ns::IndirectionC> get_indirection_c() &&; 8021 8022 template <typename T_AnnotatedStruct_indirection_c_struct_setter = ::std::set<::some::valid::ns::IndirectionC>> 8023 [[deprecated("Use `FOO.indirection_c_ref() = BAR;` instead of `FOO.set_indirection_c(BAR);`")]] 8024 ::std::set<::some::valid::ns::IndirectionC>& set_indirection_c(T_AnnotatedStruct_indirection_c_struct_setter&& indirection_c_) { 8025 indirection_c_ref() = std::forward<T_AnnotatedStruct_indirection_c_struct_setter>(indirection_c_); 8026 return indirection_c; 8027 } 8028 8029 const ::some::valid::ns::IOBuf& get_iobuf_type_val() const& { 8030 return iobuf_type_val; 8031 } 8032 8033 ::some::valid::ns::IOBuf get_iobuf_type_val() && { 8034 return std::move(iobuf_type_val); 8035 } 8036 8037 template <typename T_AnnotatedStruct_iobuf_type_val_struct_setter = ::some::valid::ns::IOBuf> 8038 [[deprecated("Use `FOO.iobuf_type_val_ref() = BAR;` instead of `FOO.set_iobuf_type_val(BAR);`")]] 8039 ::some::valid::ns::IOBuf& set_iobuf_type_val(T_AnnotatedStruct_iobuf_type_val_struct_setter&& iobuf_type_val_) { 8040 iobuf_type_val_ref() = std::forward<T_AnnotatedStruct_iobuf_type_val_struct_setter>(iobuf_type_val_); 8041 return iobuf_type_val; 8042 } 8043 8044 const ::some::valid::ns::IOBufPtr& get_iobuf_ptr_val() const& { 8045 return iobuf_ptr_val; 8046 } 8047 8048 ::some::valid::ns::IOBufPtr get_iobuf_ptr_val() && { 8049 return std::move(iobuf_ptr_val); 8050 } 8051 8052 template <typename T_AnnotatedStruct_iobuf_ptr_val_struct_setter = ::some::valid::ns::IOBufPtr> 8053 [[deprecated("Use `FOO.iobuf_ptr_val_ref() = BAR;` instead of `FOO.set_iobuf_ptr_val(BAR);`")]] 8054 ::some::valid::ns::IOBufPtr& set_iobuf_ptr_val(T_AnnotatedStruct_iobuf_ptr_val_struct_setter&& iobuf_ptr_val_) { 8055 iobuf_ptr_val_ref() = std::forward<T_AnnotatedStruct_iobuf_ptr_val_struct_setter>(iobuf_ptr_val_); 8056 return iobuf_ptr_val; 8057 } 8058 const ::some::valid::ns::containerStruct& get_struct_struct() const&; 8059 ::some::valid::ns::containerStruct get_struct_struct() &&; 8060 8061 template <typename T_AnnotatedStruct_struct_struct_struct_setter = ::some::valid::ns::containerStruct> 8062 [[deprecated("Use `FOO.struct_struct_ref() = BAR;` instead of `FOO.set_struct_struct(BAR);`")]] 8063 ::some::valid::ns::containerStruct& set_struct_struct(T_AnnotatedStruct_struct_struct_struct_setter&& struct_struct_) { 8064 struct_struct_ref() = std::forward<T_AnnotatedStruct_struct_struct_struct_setter>(struct_struct_); 8065 return struct_struct; 8066 } 8067 8068 template <class Protocol_> 8069 uint32_t read(Protocol_* iprot); 8070 template <class Protocol_> 8071 uint32_t serializedSize(Protocol_ const* prot_) const; 8072 template <class Protocol_> 8073 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 8074 template <class Protocol_> 8075 uint32_t write(Protocol_* prot_) const; 8076 // user defined code (cpp2.methods = ...) 8077 void foo(const std::string& bar) {} 8078 8079 private: 8080 template <class Protocol_> 8081 void readNoXfer(Protocol_* iprot); 8082 8083 friend class ::apache::thrift::Cpp2Ops<AnnotatedStruct>; 8084 friend void swap(AnnotatedStruct& a, AnnotatedStruct& b); 8085 }; 8086 8087 template <class Protocol_> 8088 uint32_t AnnotatedStruct::read(Protocol_* iprot) { 8089 auto _xferStart = iprot->getCursorPosition(); 8090 readNoXfer(iprot); 8091 return iprot->getCursorPosition() - _xferStart; 8092 } 8093 8094 }}} // some::valid::ns 8095 namespace some { namespace valid { namespace ns { 8096 class ComplexContainerStruct final { 8097 private: 8098 friend struct ::apache::thrift::detail::st::struct_private_access; 8099 8100 // used by a static_assert in the corresponding source 8101 static constexpr bool __fbthrift_cpp2_gen_json = true; 8102 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 8103 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 8104 8105 void __fbthrift_clear(); 8106 8107 public: 8108 using __fbthrift_cpp2_type = ComplexContainerStruct; 8109 static constexpr bool __fbthrift_cpp2_is_union = 8110 false; 8111 8112 8113 public: 8114 8115 ComplexContainerStruct() { 8116 } 8117 // FragileConstructor for use in initialization lists only. 8118 [[deprecated("This constructor is deprecated")]] 8119 ComplexContainerStruct(apache::thrift::FragileConstructor, ::std::map<::std::string, ::some::valid::ns::IOBuf> map_of_iobufs__arg, ::std::map<::std::string, ::some::valid::ns::IOBufPtr> map_of_iobuf_ptrs__arg); 8120 8121 ComplexContainerStruct(ComplexContainerStruct&&) noexcept; 8122 ComplexContainerStruct(const ComplexContainerStruct& src); 8123 8124 8125 ComplexContainerStruct& operator=(ComplexContainerStruct&&) noexcept; 8126 ComplexContainerStruct& operator=(const ComplexContainerStruct& src); 8127 private: 8128 ::std::map<::std::string, ::some::valid::ns::IOBuf> __fbthrift_field_map_of_iobufs; 8129 private: 8130 ::std::map<::std::string, ::some::valid::ns::IOBufPtr> __fbthrift_field_map_of_iobuf_ptrs; 8131 private: 8132 apache::thrift::detail::isset_bitset<2, false> __isset; 8133 8134 public: 8135 8136 bool operator==(const ComplexContainerStruct&) const; 8137 bool operator<(const ComplexContainerStruct&) const; 8138 8139 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8140 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_of_iobufs_ref() const& { 8141 return {this->__fbthrift_field_map_of_iobufs, __isset.at(0), __isset.bit(0)}; 8142 } 8143 8144 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8145 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_of_iobufs_ref() const&& { 8146 return {static_cast<const T&&>(this->__fbthrift_field_map_of_iobufs), __isset.at(0), __isset.bit(0)}; 8147 } 8148 8149 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8150 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_of_iobufs_ref() & { 8151 return {this->__fbthrift_field_map_of_iobufs, __isset.at(0), __isset.bit(0)}; 8152 } 8153 8154 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8155 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_of_iobufs_ref() && { 8156 return {static_cast<T&&>(this->__fbthrift_field_map_of_iobufs), __isset.at(0), __isset.bit(0)}; 8157 } 8158 8159 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8160 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_of_iobufs() const& { 8161 return {this->__fbthrift_field_map_of_iobufs, __isset.at(0), __isset.bit(0)}; 8162 } 8163 8164 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8165 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_of_iobufs() const&& { 8166 return {static_cast<const T&&>(this->__fbthrift_field_map_of_iobufs), __isset.at(0), __isset.bit(0)}; 8167 } 8168 8169 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8170 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_of_iobufs() & { 8171 return {this->__fbthrift_field_map_of_iobufs, __isset.at(0), __isset.bit(0)}; 8172 } 8173 8174 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8175 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_of_iobufs() && { 8176 return {static_cast<T&&>(this->__fbthrift_field_map_of_iobufs), __isset.at(0), __isset.bit(0)}; 8177 } 8178 8179 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8180 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_of_iobuf_ptrs_ref() const& { 8181 return {this->__fbthrift_field_map_of_iobuf_ptrs, __isset.at(1), __isset.bit(1)}; 8182 } 8183 8184 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8185 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_of_iobuf_ptrs_ref() const&& { 8186 return {static_cast<const T&&>(this->__fbthrift_field_map_of_iobuf_ptrs), __isset.at(1), __isset.bit(1)}; 8187 } 8188 8189 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8190 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_of_iobuf_ptrs_ref() & { 8191 return {this->__fbthrift_field_map_of_iobuf_ptrs, __isset.at(1), __isset.bit(1)}; 8192 } 8193 8194 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8195 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_of_iobuf_ptrs_ref() && { 8196 return {static_cast<T&&>(this->__fbthrift_field_map_of_iobuf_ptrs), __isset.at(1), __isset.bit(1)}; 8197 } 8198 8199 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8200 FOLLY_ERASE ::apache::thrift::field_ref<const T&> map_of_iobuf_ptrs() const& { 8201 return {this->__fbthrift_field_map_of_iobuf_ptrs, __isset.at(1), __isset.bit(1)}; 8202 } 8203 8204 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8205 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> map_of_iobuf_ptrs() const&& { 8206 return {static_cast<const T&&>(this->__fbthrift_field_map_of_iobuf_ptrs), __isset.at(1), __isset.bit(1)}; 8207 } 8208 8209 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8210 FOLLY_ERASE ::apache::thrift::field_ref<T&> map_of_iobuf_ptrs() & { 8211 return {this->__fbthrift_field_map_of_iobuf_ptrs, __isset.at(1), __isset.bit(1)}; 8212 } 8213 8214 template <typename..., typename T = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8215 FOLLY_ERASE ::apache::thrift::field_ref<T&&> map_of_iobuf_ptrs() && { 8216 return {static_cast<T&&>(this->__fbthrift_field_map_of_iobuf_ptrs), __isset.at(1), __isset.bit(1)}; 8217 } 8218 const ::std::map<::std::string, ::some::valid::ns::IOBuf>& get_map_of_iobufs() const&; 8219 ::std::map<::std::string, ::some::valid::ns::IOBuf> get_map_of_iobufs() &&; 8220 8221 template <typename T_ComplexContainerStruct_map_of_iobufs_struct_setter = ::std::map<::std::string, ::some::valid::ns::IOBuf>> 8222 [[deprecated("Use `FOO.map_of_iobufs_ref() = BAR;` instead of `FOO.set_map_of_iobufs(BAR);`")]] 8223 ::std::map<::std::string, ::some::valid::ns::IOBuf>& set_map_of_iobufs(T_ComplexContainerStruct_map_of_iobufs_struct_setter&& map_of_iobufs_) { 8224 map_of_iobufs_ref() = std::forward<T_ComplexContainerStruct_map_of_iobufs_struct_setter>(map_of_iobufs_); 8225 return __fbthrift_field_map_of_iobufs; 8226 } 8227 const ::std::map<::std::string, ::some::valid::ns::IOBufPtr>& get_map_of_iobuf_ptrs() const&; 8228 ::std::map<::std::string, ::some::valid::ns::IOBufPtr> get_map_of_iobuf_ptrs() &&; 8229 8230 template <typename T_ComplexContainerStruct_map_of_iobuf_ptrs_struct_setter = ::std::map<::std::string, ::some::valid::ns::IOBufPtr>> 8231 [[deprecated("Use `FOO.map_of_iobuf_ptrs_ref() = BAR;` instead of `FOO.set_map_of_iobuf_ptrs(BAR);`")]] 8232 ::std::map<::std::string, ::some::valid::ns::IOBufPtr>& set_map_of_iobuf_ptrs(T_ComplexContainerStruct_map_of_iobuf_ptrs_struct_setter&& map_of_iobuf_ptrs_) { 8233 map_of_iobuf_ptrs_ref() = std::forward<T_ComplexContainerStruct_map_of_iobuf_ptrs_struct_setter>(map_of_iobuf_ptrs_); 8234 return __fbthrift_field_map_of_iobuf_ptrs; 8235 } 8236 8237 template <class Protocol_> 8238 uint32_t read(Protocol_* iprot); 8239 template <class Protocol_> 8240 uint32_t serializedSize(Protocol_ const* prot_) const; 8241 template <class Protocol_> 8242 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 8243 template <class Protocol_> 8244 uint32_t write(Protocol_* prot_) const; 8245 8246 private: 8247 template <class Protocol_> 8248 void readNoXfer(Protocol_* iprot); 8249 8250 friend class ::apache::thrift::Cpp2Ops<ComplexContainerStruct>; 8251 friend void swap(ComplexContainerStruct& a, ComplexContainerStruct& b); 8252 }; 8253 8254 template <class Protocol_> 8255 uint32_t ComplexContainerStruct::read(Protocol_* iprot) { 8256 auto _xferStart = iprot->getCursorPosition(); 8257 readNoXfer(iprot); 8258 return iprot->getCursorPosition() - _xferStart; 8259 } 8260 8261 }}} // some::valid::ns 8262 namespace some { namespace valid { namespace ns { 8263 class FloatStruct final { 8264 private: 8265 friend struct ::apache::thrift::detail::st::struct_private_access; 8266 8267 // used by a static_assert in the corresponding source 8268 static constexpr bool __fbthrift_cpp2_gen_json = true; 8269 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 8270 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 8271 8272 void __fbthrift_clear(); 8273 8274 public: 8275 using __fbthrift_cpp2_type = FloatStruct; 8276 static constexpr bool __fbthrift_cpp2_is_union = 8277 false; 8278 8279 8280 public: 8281 8282 FloatStruct() : 8283 __fbthrift_field_floatField(), 8284 __fbthrift_field_doubleField() { 8285 } 8286 // FragileConstructor for use in initialization lists only. 8287 [[deprecated("This constructor is deprecated")]] 8288 FloatStruct(apache::thrift::FragileConstructor, float floatField__arg, double doubleField__arg); 8289 8290 FloatStruct(FloatStruct&&) = default; 8291 8292 FloatStruct(const FloatStruct&) = default; 8293 8294 8295 FloatStruct& operator=(FloatStruct&&) = default; 8296 8297 FloatStruct& operator=(const FloatStruct&) = default; 8298 private: 8299 float __fbthrift_field_floatField; 8300 private: 8301 double __fbthrift_field_doubleField; 8302 private: 8303 apache::thrift::detail::isset_bitset<2, false> __isset; 8304 8305 public: 8306 8307 bool operator==(const FloatStruct&) const; 8308 bool operator<(const FloatStruct&) const; 8309 8310 template <typename..., typename T = float> 8311 FOLLY_ERASE ::apache::thrift::field_ref<const T&> floatField_ref() const& { 8312 return {this->__fbthrift_field_floatField, __isset.at(0), __isset.bit(0)}; 8313 } 8314 8315 template <typename..., typename T = float> 8316 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> floatField_ref() const&& { 8317 return {static_cast<const T&&>(this->__fbthrift_field_floatField), __isset.at(0), __isset.bit(0)}; 8318 } 8319 8320 template <typename..., typename T = float> 8321 FOLLY_ERASE ::apache::thrift::field_ref<T&> floatField_ref() & { 8322 return {this->__fbthrift_field_floatField, __isset.at(0), __isset.bit(0)}; 8323 } 8324 8325 template <typename..., typename T = float> 8326 FOLLY_ERASE ::apache::thrift::field_ref<T&&> floatField_ref() && { 8327 return {static_cast<T&&>(this->__fbthrift_field_floatField), __isset.at(0), __isset.bit(0)}; 8328 } 8329 8330 template <typename..., typename T = float> 8331 FOLLY_ERASE ::apache::thrift::field_ref<const T&> floatField() const& { 8332 return {this->__fbthrift_field_floatField, __isset.at(0), __isset.bit(0)}; 8333 } 8334 8335 template <typename..., typename T = float> 8336 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> floatField() const&& { 8337 return {static_cast<const T&&>(this->__fbthrift_field_floatField), __isset.at(0), __isset.bit(0)}; 8338 } 8339 8340 template <typename..., typename T = float> 8341 FOLLY_ERASE ::apache::thrift::field_ref<T&> floatField() & { 8342 return {this->__fbthrift_field_floatField, __isset.at(0), __isset.bit(0)}; 8343 } 8344 8345 template <typename..., typename T = float> 8346 FOLLY_ERASE ::apache::thrift::field_ref<T&&> floatField() && { 8347 return {static_cast<T&&>(this->__fbthrift_field_floatField), __isset.at(0), __isset.bit(0)}; 8348 } 8349 8350 template <typename..., typename T = double> 8351 FOLLY_ERASE ::apache::thrift::field_ref<const T&> doubleField_ref() const& { 8352 return {this->__fbthrift_field_doubleField, __isset.at(1), __isset.bit(1)}; 8353 } 8354 8355 template <typename..., typename T = double> 8356 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> doubleField_ref() const&& { 8357 return {static_cast<const T&&>(this->__fbthrift_field_doubleField), __isset.at(1), __isset.bit(1)}; 8358 } 8359 8360 template <typename..., typename T = double> 8361 FOLLY_ERASE ::apache::thrift::field_ref<T&> doubleField_ref() & { 8362 return {this->__fbthrift_field_doubleField, __isset.at(1), __isset.bit(1)}; 8363 } 8364 8365 template <typename..., typename T = double> 8366 FOLLY_ERASE ::apache::thrift::field_ref<T&&> doubleField_ref() && { 8367 return {static_cast<T&&>(this->__fbthrift_field_doubleField), __isset.at(1), __isset.bit(1)}; 8368 } 8369 8370 template <typename..., typename T = double> 8371 FOLLY_ERASE ::apache::thrift::field_ref<const T&> doubleField() const& { 8372 return {this->__fbthrift_field_doubleField, __isset.at(1), __isset.bit(1)}; 8373 } 8374 8375 template <typename..., typename T = double> 8376 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> doubleField() const&& { 8377 return {static_cast<const T&&>(this->__fbthrift_field_doubleField), __isset.at(1), __isset.bit(1)}; 8378 } 8379 8380 template <typename..., typename T = double> 8381 FOLLY_ERASE ::apache::thrift::field_ref<T&> doubleField() & { 8382 return {this->__fbthrift_field_doubleField, __isset.at(1), __isset.bit(1)}; 8383 } 8384 8385 template <typename..., typename T = double> 8386 FOLLY_ERASE ::apache::thrift::field_ref<T&&> doubleField() && { 8387 return {static_cast<T&&>(this->__fbthrift_field_doubleField), __isset.at(1), __isset.bit(1)}; 8388 } 8389 8390 float get_floatField() const { 8391 return __fbthrift_field_floatField; 8392 } 8393 8394 [[deprecated("Use `FOO.floatField_ref() = BAR;` instead of `FOO.set_floatField(BAR);`")]] 8395 float& set_floatField(float floatField_) { 8396 floatField_ref() = floatField_; 8397 return __fbthrift_field_floatField; 8398 } 8399 8400 double get_doubleField() const { 8401 return __fbthrift_field_doubleField; 8402 } 8403 8404 [[deprecated("Use `FOO.doubleField_ref() = BAR;` instead of `FOO.set_doubleField(BAR);`")]] 8405 double& set_doubleField(double doubleField_) { 8406 doubleField_ref() = doubleField_; 8407 return __fbthrift_field_doubleField; 8408 } 8409 8410 template <class Protocol_> 8411 uint32_t read(Protocol_* iprot); 8412 template <class Protocol_> 8413 uint32_t serializedSize(Protocol_ const* prot_) const; 8414 template <class Protocol_> 8415 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 8416 template <class Protocol_> 8417 uint32_t write(Protocol_* prot_) const; 8418 8419 private: 8420 template <class Protocol_> 8421 void readNoXfer(Protocol_* iprot); 8422 8423 friend class ::apache::thrift::Cpp2Ops<FloatStruct>; 8424 friend void swap(FloatStruct& a, FloatStruct& b); 8425 }; 8426 8427 template <class Protocol_> 8428 uint32_t FloatStruct::read(Protocol_* iprot) { 8429 auto _xferStart = iprot->getCursorPosition(); 8430 readNoXfer(iprot); 8431 return iprot->getCursorPosition() - _xferStart; 8432 } 8433 8434 }}} // some::valid::ns 8435 namespace some { namespace valid { namespace ns { 8436 class FloatUnion final { 8437 private: 8438 friend struct ::apache::thrift::detail::st::struct_private_access; 8439 8440 // used by a static_assert in the corresponding source 8441 static constexpr bool __fbthrift_cpp2_gen_json = true; 8442 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 8443 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 8444 8445 void __fbthrift_clear(); 8446 8447 public: 8448 using __fbthrift_cpp2_type = FloatUnion; 8449 static constexpr bool __fbthrift_cpp2_is_union = 8450 true; 8451 8452 8453 public: 8454 enum Type : int { 8455 __EMPTY__ = 0, 8456 floatSide = 1, 8457 doubleSide = 2, 8458 } ; 8459 8460 FloatUnion() 8461 : type_(Type::__EMPTY__) {} 8462 8463 FloatUnion(FloatUnion&& rhs) noexcept 8464 : type_(Type::__EMPTY__) { 8465 if (this == &rhs) { return; } 8466 if (rhs.type_ == Type::__EMPTY__) { return; } 8467 switch (rhs.type_) { 8468 case Type::floatSide: 8469 { 8470 set_floatSide(std::move(rhs.value_.floatSide)); 8471 break; 8472 } 8473 case Type::doubleSide: 8474 { 8475 set_doubleSide(std::move(rhs.value_.doubleSide)); 8476 break; 8477 } 8478 default: 8479 { 8480 assert(false); 8481 break; 8482 } 8483 } 8484 apache::thrift::clear(rhs); 8485 } 8486 8487 FloatUnion(const FloatUnion& rhs) 8488 : type_(Type::__EMPTY__) { 8489 if (this == &rhs) { return; } 8490 if (rhs.type_ == Type::__EMPTY__) { return; } 8491 switch (rhs.type_) { 8492 case Type::floatSide: 8493 { 8494 set_floatSide(rhs.value_.floatSide); 8495 break; 8496 } 8497 case Type::doubleSide: 8498 { 8499 set_doubleSide(rhs.value_.doubleSide); 8500 break; 8501 } 8502 default: 8503 { 8504 assert(false); 8505 break; 8506 } 8507 } 8508 } 8509 8510 FloatUnion& operator=(FloatUnion&& rhs) noexcept { 8511 if (this == &rhs) { return *this; } 8512 __fbthrift_clear(); 8513 if (rhs.type_ == Type::__EMPTY__) { return *this; } 8514 switch (rhs.type_) { 8515 case Type::floatSide: 8516 { 8517 set_floatSide(std::move(rhs.value_.floatSide)); 8518 break; 8519 } 8520 case Type::doubleSide: 8521 { 8522 set_doubleSide(std::move(rhs.value_.doubleSide)); 8523 break; 8524 } 8525 default: 8526 { 8527 assert(false); 8528 break; 8529 } 8530 } 8531 apache::thrift::clear(rhs); 8532 return *this; 8533 } 8534 8535 FloatUnion& operator=(const FloatUnion& rhs) { 8536 if (this == &rhs) { return *this; } 8537 __fbthrift_clear(); 8538 if (rhs.type_ == Type::__EMPTY__) { return *this; } 8539 switch (rhs.type_) { 8540 case Type::floatSide: 8541 { 8542 set_floatSide(rhs.value_.floatSide); 8543 break; 8544 } 8545 case Type::doubleSide: 8546 { 8547 set_doubleSide(rhs.value_.doubleSide); 8548 break; 8549 } 8550 default: 8551 { 8552 assert(false); 8553 break; 8554 } 8555 } 8556 return *this; 8557 } 8558 8559 ~FloatUnion() { 8560 apache::thrift::clear(*this); 8561 } 8562 union storage_type { 8563 float floatSide; 8564 double doubleSide; 8565 8566 storage_type() {} 8567 ~storage_type() {} 8568 } ; 8569 8570 bool operator==(const FloatUnion&) const; 8571 bool operator<(const FloatUnion&) const; 8572 8573 float& set_floatSide(float t = float()) { 8574 __fbthrift_clear(); 8575 type_ = Type::floatSide; 8576 ::new (std::addressof(value_.floatSide)) float(t); 8577 return value_.floatSide; 8578 } 8579 8580 double& set_doubleSide(double t = double()) { 8581 __fbthrift_clear(); 8582 type_ = Type::doubleSide; 8583 ::new (std::addressof(value_.doubleSide)) double(t); 8584 return value_.doubleSide; 8585 } 8586 8587 float const& get_floatSide() const { 8588 if (type_ != Type::floatSide) { 8589 ::apache::thrift::detail::throw_on_bad_field_access(); 8590 } 8591 return value_.floatSide; 8592 } 8593 8594 double const& get_doubleSide() const { 8595 if (type_ != Type::doubleSide) { 8596 ::apache::thrift::detail::throw_on_bad_field_access(); 8597 } 8598 return value_.doubleSide; 8599 } 8600 8601 float& mutable_floatSide() { 8602 assert(type_ == Type::floatSide); 8603 return value_.floatSide; 8604 } 8605 8606 double& mutable_doubleSide() { 8607 assert(type_ == Type::doubleSide); 8608 return value_.doubleSide; 8609 } 8610 8611 float move_floatSide() { 8612 assert(type_ == Type::floatSide); 8613 return std::move(value_.floatSide); 8614 } 8615 8616 double move_doubleSide() { 8617 assert(type_ == Type::doubleSide); 8618 return std::move(value_.doubleSide); 8619 } 8620 8621 template <typename..., typename T = float> 8622 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> floatSide_ref() const& { 8623 return {value_.floatSide, type_, floatSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8624 } 8625 8626 template <typename..., typename T = float> 8627 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> floatSide_ref() const&& { 8628 return {std::move(value_.floatSide), type_, floatSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8629 } 8630 8631 template <typename..., typename T = float> 8632 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> floatSide_ref() & { 8633 return {value_.floatSide, type_, floatSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8634 } 8635 8636 template <typename..., typename T = float> 8637 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> floatSide_ref() && { 8638 return {std::move(value_.floatSide), type_, floatSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8639 } 8640 template <typename..., typename T = double> 8641 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> doubleSide_ref() const& { 8642 return {value_.doubleSide, type_, doubleSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8643 } 8644 8645 template <typename..., typename T = double> 8646 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> doubleSide_ref() const&& { 8647 return {std::move(value_.doubleSide), type_, doubleSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8648 } 8649 8650 template <typename..., typename T = double> 8651 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> doubleSide_ref() & { 8652 return {value_.doubleSide, type_, doubleSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8653 } 8654 8655 template <typename..., typename T = double> 8656 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> doubleSide_ref() && { 8657 return {std::move(value_.doubleSide), type_, doubleSide, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 8658 } 8659 Type getType() const { return static_cast<Type>(type_); } 8660 8661 template <class Protocol_> 8662 uint32_t read(Protocol_* iprot); 8663 template <class Protocol_> 8664 uint32_t serializedSize(Protocol_ const* prot_) const; 8665 template <class Protocol_> 8666 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 8667 template <class Protocol_> 8668 uint32_t write(Protocol_* prot_) const; 8669 protected: 8670 template <class T> 8671 void destruct(T &val) { 8672 (&val)->~T(); 8673 } 8674 8675 storage_type value_; 8676 std::underlying_type_t<Type> type_; 8677 8678 private: 8679 template <class Protocol_> 8680 void readNoXfer(Protocol_* iprot); 8681 8682 friend class ::apache::thrift::Cpp2Ops<FloatUnion>; 8683 friend void swap(FloatUnion& a, FloatUnion& b); 8684 }; 8685 8686 template <class Protocol_> 8687 uint32_t FloatUnion::read(Protocol_* iprot) { 8688 auto _xferStart = iprot->getCursorPosition(); 8689 readNoXfer(iprot); 8690 return iprot->getCursorPosition() - _xferStart; 8691 } 8692 8693 }}} // some::valid::ns 8694 namespace some { namespace valid { namespace ns { 8695 class AllRequiredNoExceptMoveCtrStruct final { 8696 private: 8697 friend struct ::apache::thrift::detail::st::struct_private_access; 8698 8699 // used by a static_assert in the corresponding source 8700 static constexpr bool __fbthrift_cpp2_gen_json = true; 8701 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 8702 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 8703 8704 void __fbthrift_clear(); 8705 8706 public: 8707 using __fbthrift_cpp2_type = AllRequiredNoExceptMoveCtrStruct; 8708 static constexpr bool __fbthrift_cpp2_is_union = 8709 false; 8710 8711 8712 public: 8713 8714 AllRequiredNoExceptMoveCtrStruct() : 8715 intField() { 8716 } 8717 // FragileConstructor for use in initialization lists only. 8718 [[deprecated("This constructor is deprecated")]] 8719 AllRequiredNoExceptMoveCtrStruct(apache::thrift::FragileConstructor, ::std::int64_t intField__arg); 8720 8721 AllRequiredNoExceptMoveCtrStruct(AllRequiredNoExceptMoveCtrStruct&&) = default; 8722 8723 AllRequiredNoExceptMoveCtrStruct(const AllRequiredNoExceptMoveCtrStruct&) = default; 8724 8725 8726 AllRequiredNoExceptMoveCtrStruct& operator=(AllRequiredNoExceptMoveCtrStruct&&) = default; 8727 8728 AllRequiredNoExceptMoveCtrStruct& operator=(const AllRequiredNoExceptMoveCtrStruct&) = default; 8729 public: 8730 ::std::int64_t intField; 8731 8732 public: 8733 8734 bool operator==(const AllRequiredNoExceptMoveCtrStruct&) const; 8735 bool operator<(const AllRequiredNoExceptMoveCtrStruct&) const; 8736 8737 template <typename..., typename T = ::std::int64_t> 8738 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> intField_ref() const& { 8739 return ::apache::thrift::required_field_ref<const T&>{this->intField}; 8740 } 8741 8742 template <typename..., typename T = ::std::int64_t> 8743 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> intField_ref() const&& { 8744 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->intField)}; 8745 } 8746 8747 template <typename..., typename T = ::std::int64_t> 8748 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> intField_ref() & { 8749 return ::apache::thrift::required_field_ref<T&>{this->intField}; 8750 } 8751 8752 template <typename..., typename T = ::std::int64_t> 8753 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> intField_ref() && { 8754 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->intField)}; 8755 } 8756 8757 ::std::int64_t get_intField() const { 8758 return intField; 8759 } 8760 8761 [[deprecated("Use `FOO.intField_ref() = BAR;` instead of `FOO.set_intField(BAR);`")]] 8762 ::std::int64_t& set_intField(::std::int64_t intField_) { 8763 intField_ref() = intField_; 8764 return intField; 8765 } 8766 8767 template <class Protocol_> 8768 uint32_t read(Protocol_* iprot); 8769 template <class Protocol_> 8770 uint32_t serializedSize(Protocol_ const* prot_) const; 8771 template <class Protocol_> 8772 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 8773 template <class Protocol_> 8774 uint32_t write(Protocol_* prot_) const; 8775 8776 private: 8777 template <class Protocol_> 8778 void readNoXfer(Protocol_* iprot); 8779 8780 friend class ::apache::thrift::Cpp2Ops<AllRequiredNoExceptMoveCtrStruct>; 8781 friend void swap(AllRequiredNoExceptMoveCtrStruct& a, AllRequiredNoExceptMoveCtrStruct& b); 8782 }; 8783 8784 template <class Protocol_> 8785 uint32_t AllRequiredNoExceptMoveCtrStruct::read(Protocol_* iprot) { 8786 auto _xferStart = iprot->getCursorPosition(); 8787 readNoXfer(iprot); 8788 return iprot->getCursorPosition() - _xferStart; 8789 } 8790 8791 }}} // some::valid::ns 8792 8793 namespace apache { namespace thrift { 8794 8795 template <> struct TEnumDataStorage<::some::valid::ns::SimpleUnion::Type>; 8796 8797 template <> struct TEnumTraits<::some::valid::ns::SimpleUnion::Type> { 8798 using type = ::some::valid::ns::SimpleUnion::Type; 8799 8800 static constexpr std::size_t const size = 2; 8801 static folly::Range<type const*> const values; 8802 static folly::Range<folly::StringPiece const*> const names; 8803 8804 static char const* findName(type value); 8805 static bool findValue(char const* name, type* out); 8806 8807 }; 8808 8809 template <> struct TEnumDataStorage<::some::valid::ns::ComplexUnion::Type>; 8810 8811 template <> struct TEnumTraits<::some::valid::ns::ComplexUnion::Type> { 8812 using type = ::some::valid::ns::ComplexUnion::Type; 8813 8814 static constexpr std::size_t const size = 28; 8815 static folly::Range<type const*> const values; 8816 static folly::Range<folly::StringPiece const*> const names; 8817 8818 static char const* findName(type value); 8819 static bool findValue(char const* name, type* out); 8820 8821 }; 8822 8823 template <> struct TEnumDataStorage<::some::valid::ns::FloatUnion::Type>; 8824 8825 template <> struct TEnumTraits<::some::valid::ns::FloatUnion::Type> { 8826 using type = ::some::valid::ns::FloatUnion::Type; 8827 8828 static constexpr std::size_t const size = 2; 8829 static folly::Range<type const*> const values; 8830 static folly::Range<folly::StringPiece const*> const names; 8831 8832 static char const* findName(type value); 8833 static bool findValue(char const* name, type* out); 8834 8835 }; 8836 }} // apache::thrift 8837