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/fatal/gen-cpp2/reflection_dep_B_types.h" 13 #include "thrift/compiler/test/fixtures/fatal/gen-cpp2/reflection_dep_C_types.h" 14 #include "thrift/test/fatal_custom_types.h" 15 16 namespace apache { 17 namespace thrift { 18 namespace tag { 19 struct ui; 20 struct ud; 21 struct us; 22 struct ue; 23 struct ui_2; 24 struct ud_2; 25 struct us_2; 26 struct ue_2; 27 struct ui_3; 28 struct ud_3; 29 struct us_3; 30 struct ue_3; 31 struct a; 32 struct b; 33 struct i; 34 struct d; 35 struct s; 36 struct e; 37 struct a; 38 struct c; 39 struct d; 40 struct a; 41 struct b; 42 struct c; 43 struct d; 44 struct e; 45 struct f; 46 struct g; 47 struct h; 48 struct i; 49 struct j; 50 struct j1; 51 struct j2; 52 struct j3; 53 struct k; 54 struct k1; 55 struct k2; 56 struct k3; 57 struct l; 58 struct l1; 59 struct l2; 60 struct l3; 61 struct m1; 62 struct m2; 63 struct m3; 64 struct n1; 65 struct n2; 66 struct n3; 67 struct o1; 68 struct o2; 69 struct o3; 70 struct field0; 71 struct field1; 72 struct field2; 73 struct field3; 74 struct field4; 75 struct field5; 76 struct fieldA; 77 struct fieldB; 78 struct fieldC; 79 struct fieldD; 80 struct fieldE; 81 struct fieldF; 82 struct fieldG; 83 struct fieldA; 84 struct fieldB; 85 struct fieldC; 86 struct fieldD; 87 struct fieldE; 88 struct fieldF; 89 struct fieldG; 90 struct fieldH; 91 struct fieldI; 92 struct fieldJ; 93 struct fieldK; 94 struct fieldL; 95 struct fieldM; 96 struct fieldN; 97 struct fieldO; 98 struct fieldP; 99 struct fieldQ; 100 struct fieldR; 101 struct field0; 102 struct field1; 103 struct field2; 104 struct field3; 105 struct field0; 106 struct field1; 107 struct field2; 108 struct field3; 109 struct field4; 110 struct bi; 111 struct b; 112 struct c; 113 struct i_a; 114 struct b; 115 struct c; 116 struct i_a; 117 struct a; 118 struct get; 119 struct getter; 120 struct lists; 121 struct maps; 122 struct name; 123 struct name_to_value; 124 struct names; 125 struct prefix_tree; 126 struct sets; 127 struct setter; 128 struct str; 129 struct strings; 130 struct type; 131 struct value; 132 struct value_to_name; 133 struct values; 134 struct id; 135 struct ids; 136 struct descriptor; 137 struct descriptors; 138 struct key; 139 struct keys; 140 struct annotation; 141 struct annotations; 142 struct member; 143 struct members; 144 struct field; 145 struct fields; 146 struct get; 147 struct getter; 148 struct lists; 149 struct maps; 150 struct name; 151 struct name_to_value; 152 struct names; 153 struct prefix_tree; 154 struct sets; 155 struct setter; 156 struct str; 157 struct strings; 158 struct type; 159 struct value; 160 struct value_to_name; 161 struct values; 162 struct id; 163 struct ids; 164 struct descriptor; 165 struct descriptors; 166 struct key; 167 struct keys; 168 struct annotation; 169 struct annotations; 170 struct member; 171 struct members; 172 struct field; 173 struct fields; 174 struct real; 175 struct fake; 176 struct number; 177 struct result; 178 struct phrase; 179 } // namespace tag 180 namespace detail { 181 #ifndef APACHE_THRIFT_ACCESSOR_ui 182 #define APACHE_THRIFT_ACCESSOR_ui 183 APACHE_THRIFT_DEFINE_ACCESSOR(ui); 184 #endif 185 #ifndef APACHE_THRIFT_ACCESSOR_ud 186 #define APACHE_THRIFT_ACCESSOR_ud 187 APACHE_THRIFT_DEFINE_ACCESSOR(ud); 188 #endif 189 #ifndef APACHE_THRIFT_ACCESSOR_us 190 #define APACHE_THRIFT_ACCESSOR_us 191 APACHE_THRIFT_DEFINE_ACCESSOR(us); 192 #endif 193 #ifndef APACHE_THRIFT_ACCESSOR_ue 194 #define APACHE_THRIFT_ACCESSOR_ue 195 APACHE_THRIFT_DEFINE_ACCESSOR(ue); 196 #endif 197 #ifndef APACHE_THRIFT_ACCESSOR_ui_2 198 #define APACHE_THRIFT_ACCESSOR_ui_2 199 APACHE_THRIFT_DEFINE_ACCESSOR(ui_2); 200 #endif 201 #ifndef APACHE_THRIFT_ACCESSOR_ud_2 202 #define APACHE_THRIFT_ACCESSOR_ud_2 203 APACHE_THRIFT_DEFINE_ACCESSOR(ud_2); 204 #endif 205 #ifndef APACHE_THRIFT_ACCESSOR_us_2 206 #define APACHE_THRIFT_ACCESSOR_us_2 207 APACHE_THRIFT_DEFINE_ACCESSOR(us_2); 208 #endif 209 #ifndef APACHE_THRIFT_ACCESSOR_ue_2 210 #define APACHE_THRIFT_ACCESSOR_ue_2 211 APACHE_THRIFT_DEFINE_ACCESSOR(ue_2); 212 #endif 213 #ifndef APACHE_THRIFT_ACCESSOR_ui_3 214 #define APACHE_THRIFT_ACCESSOR_ui_3 215 APACHE_THRIFT_DEFINE_ACCESSOR(ui_3); 216 #endif 217 #ifndef APACHE_THRIFT_ACCESSOR_ud_3 218 #define APACHE_THRIFT_ACCESSOR_ud_3 219 APACHE_THRIFT_DEFINE_ACCESSOR(ud_3); 220 #endif 221 #ifndef APACHE_THRIFT_ACCESSOR_us_3 222 #define APACHE_THRIFT_ACCESSOR_us_3 223 APACHE_THRIFT_DEFINE_ACCESSOR(us_3); 224 #endif 225 #ifndef APACHE_THRIFT_ACCESSOR_ue_3 226 #define APACHE_THRIFT_ACCESSOR_ue_3 227 APACHE_THRIFT_DEFINE_ACCESSOR(ue_3); 228 #endif 229 #ifndef APACHE_THRIFT_ACCESSOR_a 230 #define APACHE_THRIFT_ACCESSOR_a 231 APACHE_THRIFT_DEFINE_ACCESSOR(a); 232 #endif 233 #ifndef APACHE_THRIFT_ACCESSOR_b 234 #define APACHE_THRIFT_ACCESSOR_b 235 APACHE_THRIFT_DEFINE_ACCESSOR(b); 236 #endif 237 #ifndef APACHE_THRIFT_ACCESSOR_i 238 #define APACHE_THRIFT_ACCESSOR_i 239 APACHE_THRIFT_DEFINE_ACCESSOR(i); 240 #endif 241 #ifndef APACHE_THRIFT_ACCESSOR_d 242 #define APACHE_THRIFT_ACCESSOR_d 243 APACHE_THRIFT_DEFINE_ACCESSOR(d); 244 #endif 245 #ifndef APACHE_THRIFT_ACCESSOR_s 246 #define APACHE_THRIFT_ACCESSOR_s 247 APACHE_THRIFT_DEFINE_ACCESSOR(s); 248 #endif 249 #ifndef APACHE_THRIFT_ACCESSOR_e 250 #define APACHE_THRIFT_ACCESSOR_e 251 APACHE_THRIFT_DEFINE_ACCESSOR(e); 252 #endif 253 #ifndef APACHE_THRIFT_ACCESSOR_a 254 #define APACHE_THRIFT_ACCESSOR_a 255 APACHE_THRIFT_DEFINE_ACCESSOR(a); 256 #endif 257 #ifndef APACHE_THRIFT_ACCESSOR_c 258 #define APACHE_THRIFT_ACCESSOR_c 259 APACHE_THRIFT_DEFINE_ACCESSOR(c); 260 #endif 261 #ifndef APACHE_THRIFT_ACCESSOR_d 262 #define APACHE_THRIFT_ACCESSOR_d 263 APACHE_THRIFT_DEFINE_ACCESSOR(d); 264 #endif 265 #ifndef APACHE_THRIFT_ACCESSOR_a 266 #define APACHE_THRIFT_ACCESSOR_a 267 APACHE_THRIFT_DEFINE_ACCESSOR(a); 268 #endif 269 #ifndef APACHE_THRIFT_ACCESSOR_b 270 #define APACHE_THRIFT_ACCESSOR_b 271 APACHE_THRIFT_DEFINE_ACCESSOR(b); 272 #endif 273 #ifndef APACHE_THRIFT_ACCESSOR_c 274 #define APACHE_THRIFT_ACCESSOR_c 275 APACHE_THRIFT_DEFINE_ACCESSOR(c); 276 #endif 277 #ifndef APACHE_THRIFT_ACCESSOR_d 278 #define APACHE_THRIFT_ACCESSOR_d 279 APACHE_THRIFT_DEFINE_ACCESSOR(d); 280 #endif 281 #ifndef APACHE_THRIFT_ACCESSOR_e 282 #define APACHE_THRIFT_ACCESSOR_e 283 APACHE_THRIFT_DEFINE_ACCESSOR(e); 284 #endif 285 #ifndef APACHE_THRIFT_ACCESSOR_f 286 #define APACHE_THRIFT_ACCESSOR_f 287 APACHE_THRIFT_DEFINE_ACCESSOR(f); 288 #endif 289 #ifndef APACHE_THRIFT_ACCESSOR_g 290 #define APACHE_THRIFT_ACCESSOR_g 291 APACHE_THRIFT_DEFINE_ACCESSOR(g); 292 #endif 293 #ifndef APACHE_THRIFT_ACCESSOR_h 294 #define APACHE_THRIFT_ACCESSOR_h 295 APACHE_THRIFT_DEFINE_ACCESSOR(h); 296 #endif 297 #ifndef APACHE_THRIFT_ACCESSOR_i 298 #define APACHE_THRIFT_ACCESSOR_i 299 APACHE_THRIFT_DEFINE_ACCESSOR(i); 300 #endif 301 #ifndef APACHE_THRIFT_ACCESSOR_j 302 #define APACHE_THRIFT_ACCESSOR_j 303 APACHE_THRIFT_DEFINE_ACCESSOR(j); 304 #endif 305 #ifndef APACHE_THRIFT_ACCESSOR_j1 306 #define APACHE_THRIFT_ACCESSOR_j1 307 APACHE_THRIFT_DEFINE_ACCESSOR(j1); 308 #endif 309 #ifndef APACHE_THRIFT_ACCESSOR_j2 310 #define APACHE_THRIFT_ACCESSOR_j2 311 APACHE_THRIFT_DEFINE_ACCESSOR(j2); 312 #endif 313 #ifndef APACHE_THRIFT_ACCESSOR_j3 314 #define APACHE_THRIFT_ACCESSOR_j3 315 APACHE_THRIFT_DEFINE_ACCESSOR(j3); 316 #endif 317 #ifndef APACHE_THRIFT_ACCESSOR_k 318 #define APACHE_THRIFT_ACCESSOR_k 319 APACHE_THRIFT_DEFINE_ACCESSOR(k); 320 #endif 321 #ifndef APACHE_THRIFT_ACCESSOR_k1 322 #define APACHE_THRIFT_ACCESSOR_k1 323 APACHE_THRIFT_DEFINE_ACCESSOR(k1); 324 #endif 325 #ifndef APACHE_THRIFT_ACCESSOR_k2 326 #define APACHE_THRIFT_ACCESSOR_k2 327 APACHE_THRIFT_DEFINE_ACCESSOR(k2); 328 #endif 329 #ifndef APACHE_THRIFT_ACCESSOR_k3 330 #define APACHE_THRIFT_ACCESSOR_k3 331 APACHE_THRIFT_DEFINE_ACCESSOR(k3); 332 #endif 333 #ifndef APACHE_THRIFT_ACCESSOR_l 334 #define APACHE_THRIFT_ACCESSOR_l 335 APACHE_THRIFT_DEFINE_ACCESSOR(l); 336 #endif 337 #ifndef APACHE_THRIFT_ACCESSOR_l1 338 #define APACHE_THRIFT_ACCESSOR_l1 339 APACHE_THRIFT_DEFINE_ACCESSOR(l1); 340 #endif 341 #ifndef APACHE_THRIFT_ACCESSOR_l2 342 #define APACHE_THRIFT_ACCESSOR_l2 343 APACHE_THRIFT_DEFINE_ACCESSOR(l2); 344 #endif 345 #ifndef APACHE_THRIFT_ACCESSOR_l3 346 #define APACHE_THRIFT_ACCESSOR_l3 347 APACHE_THRIFT_DEFINE_ACCESSOR(l3); 348 #endif 349 #ifndef APACHE_THRIFT_ACCESSOR_m1 350 #define APACHE_THRIFT_ACCESSOR_m1 351 APACHE_THRIFT_DEFINE_ACCESSOR(m1); 352 #endif 353 #ifndef APACHE_THRIFT_ACCESSOR_m2 354 #define APACHE_THRIFT_ACCESSOR_m2 355 APACHE_THRIFT_DEFINE_ACCESSOR(m2); 356 #endif 357 #ifndef APACHE_THRIFT_ACCESSOR_m3 358 #define APACHE_THRIFT_ACCESSOR_m3 359 APACHE_THRIFT_DEFINE_ACCESSOR(m3); 360 #endif 361 #ifndef APACHE_THRIFT_ACCESSOR_n1 362 #define APACHE_THRIFT_ACCESSOR_n1 363 APACHE_THRIFT_DEFINE_ACCESSOR(n1); 364 #endif 365 #ifndef APACHE_THRIFT_ACCESSOR_n2 366 #define APACHE_THRIFT_ACCESSOR_n2 367 APACHE_THRIFT_DEFINE_ACCESSOR(n2); 368 #endif 369 #ifndef APACHE_THRIFT_ACCESSOR_n3 370 #define APACHE_THRIFT_ACCESSOR_n3 371 APACHE_THRIFT_DEFINE_ACCESSOR(n3); 372 #endif 373 #ifndef APACHE_THRIFT_ACCESSOR_o1 374 #define APACHE_THRIFT_ACCESSOR_o1 375 APACHE_THRIFT_DEFINE_ACCESSOR(o1); 376 #endif 377 #ifndef APACHE_THRIFT_ACCESSOR_o2 378 #define APACHE_THRIFT_ACCESSOR_o2 379 APACHE_THRIFT_DEFINE_ACCESSOR(o2); 380 #endif 381 #ifndef APACHE_THRIFT_ACCESSOR_o3 382 #define APACHE_THRIFT_ACCESSOR_o3 383 APACHE_THRIFT_DEFINE_ACCESSOR(o3); 384 #endif 385 #ifndef APACHE_THRIFT_ACCESSOR_field0 386 #define APACHE_THRIFT_ACCESSOR_field0 387 APACHE_THRIFT_DEFINE_ACCESSOR(field0); 388 #endif 389 #ifndef APACHE_THRIFT_ACCESSOR_field1 390 #define APACHE_THRIFT_ACCESSOR_field1 391 APACHE_THRIFT_DEFINE_ACCESSOR(field1); 392 #endif 393 #ifndef APACHE_THRIFT_ACCESSOR_field2 394 #define APACHE_THRIFT_ACCESSOR_field2 395 APACHE_THRIFT_DEFINE_ACCESSOR(field2); 396 #endif 397 #ifndef APACHE_THRIFT_ACCESSOR_field3 398 #define APACHE_THRIFT_ACCESSOR_field3 399 APACHE_THRIFT_DEFINE_ACCESSOR(field3); 400 #endif 401 #ifndef APACHE_THRIFT_ACCESSOR_field4 402 #define APACHE_THRIFT_ACCESSOR_field4 403 APACHE_THRIFT_DEFINE_ACCESSOR(field4); 404 #endif 405 #ifndef APACHE_THRIFT_ACCESSOR_field5 406 #define APACHE_THRIFT_ACCESSOR_field5 407 APACHE_THRIFT_DEFINE_ACCESSOR(field5); 408 #endif 409 #ifndef APACHE_THRIFT_ACCESSOR_fieldA 410 #define APACHE_THRIFT_ACCESSOR_fieldA 411 APACHE_THRIFT_DEFINE_ACCESSOR(fieldA); 412 #endif 413 #ifndef APACHE_THRIFT_ACCESSOR_fieldB 414 #define APACHE_THRIFT_ACCESSOR_fieldB 415 APACHE_THRIFT_DEFINE_ACCESSOR(fieldB); 416 #endif 417 #ifndef APACHE_THRIFT_ACCESSOR_fieldC 418 #define APACHE_THRIFT_ACCESSOR_fieldC 419 APACHE_THRIFT_DEFINE_ACCESSOR(fieldC); 420 #endif 421 #ifndef APACHE_THRIFT_ACCESSOR_fieldD 422 #define APACHE_THRIFT_ACCESSOR_fieldD 423 APACHE_THRIFT_DEFINE_ACCESSOR(fieldD); 424 #endif 425 #ifndef APACHE_THRIFT_ACCESSOR_fieldE 426 #define APACHE_THRIFT_ACCESSOR_fieldE 427 APACHE_THRIFT_DEFINE_ACCESSOR(fieldE); 428 #endif 429 #ifndef APACHE_THRIFT_ACCESSOR_fieldF 430 #define APACHE_THRIFT_ACCESSOR_fieldF 431 APACHE_THRIFT_DEFINE_ACCESSOR(fieldF); 432 #endif 433 #ifndef APACHE_THRIFT_ACCESSOR_fieldG 434 #define APACHE_THRIFT_ACCESSOR_fieldG 435 APACHE_THRIFT_DEFINE_ACCESSOR(fieldG); 436 #endif 437 #ifndef APACHE_THRIFT_ACCESSOR_fieldA 438 #define APACHE_THRIFT_ACCESSOR_fieldA 439 APACHE_THRIFT_DEFINE_ACCESSOR(fieldA); 440 #endif 441 #ifndef APACHE_THRIFT_ACCESSOR_fieldB 442 #define APACHE_THRIFT_ACCESSOR_fieldB 443 APACHE_THRIFT_DEFINE_ACCESSOR(fieldB); 444 #endif 445 #ifndef APACHE_THRIFT_ACCESSOR_fieldC 446 #define APACHE_THRIFT_ACCESSOR_fieldC 447 APACHE_THRIFT_DEFINE_ACCESSOR(fieldC); 448 #endif 449 #ifndef APACHE_THRIFT_ACCESSOR_fieldD 450 #define APACHE_THRIFT_ACCESSOR_fieldD 451 APACHE_THRIFT_DEFINE_ACCESSOR(fieldD); 452 #endif 453 #ifndef APACHE_THRIFT_ACCESSOR_fieldE 454 #define APACHE_THRIFT_ACCESSOR_fieldE 455 APACHE_THRIFT_DEFINE_ACCESSOR(fieldE); 456 #endif 457 #ifndef APACHE_THRIFT_ACCESSOR_fieldF 458 #define APACHE_THRIFT_ACCESSOR_fieldF 459 APACHE_THRIFT_DEFINE_ACCESSOR(fieldF); 460 #endif 461 #ifndef APACHE_THRIFT_ACCESSOR_fieldG 462 #define APACHE_THRIFT_ACCESSOR_fieldG 463 APACHE_THRIFT_DEFINE_ACCESSOR(fieldG); 464 #endif 465 #ifndef APACHE_THRIFT_ACCESSOR_fieldH 466 #define APACHE_THRIFT_ACCESSOR_fieldH 467 APACHE_THRIFT_DEFINE_ACCESSOR(fieldH); 468 #endif 469 #ifndef APACHE_THRIFT_ACCESSOR_fieldI 470 #define APACHE_THRIFT_ACCESSOR_fieldI 471 APACHE_THRIFT_DEFINE_ACCESSOR(fieldI); 472 #endif 473 #ifndef APACHE_THRIFT_ACCESSOR_fieldJ 474 #define APACHE_THRIFT_ACCESSOR_fieldJ 475 APACHE_THRIFT_DEFINE_ACCESSOR(fieldJ); 476 #endif 477 #ifndef APACHE_THRIFT_ACCESSOR_fieldK 478 #define APACHE_THRIFT_ACCESSOR_fieldK 479 APACHE_THRIFT_DEFINE_ACCESSOR(fieldK); 480 #endif 481 #ifndef APACHE_THRIFT_ACCESSOR_fieldL 482 #define APACHE_THRIFT_ACCESSOR_fieldL 483 APACHE_THRIFT_DEFINE_ACCESSOR(fieldL); 484 #endif 485 #ifndef APACHE_THRIFT_ACCESSOR_fieldM 486 #define APACHE_THRIFT_ACCESSOR_fieldM 487 APACHE_THRIFT_DEFINE_ACCESSOR(fieldM); 488 #endif 489 #ifndef APACHE_THRIFT_ACCESSOR_fieldN 490 #define APACHE_THRIFT_ACCESSOR_fieldN 491 APACHE_THRIFT_DEFINE_ACCESSOR(fieldN); 492 #endif 493 #ifndef APACHE_THRIFT_ACCESSOR_fieldO 494 #define APACHE_THRIFT_ACCESSOR_fieldO 495 APACHE_THRIFT_DEFINE_ACCESSOR(fieldO); 496 #endif 497 #ifndef APACHE_THRIFT_ACCESSOR_fieldP 498 #define APACHE_THRIFT_ACCESSOR_fieldP 499 APACHE_THRIFT_DEFINE_ACCESSOR(fieldP); 500 #endif 501 #ifndef APACHE_THRIFT_ACCESSOR_fieldQ 502 #define APACHE_THRIFT_ACCESSOR_fieldQ 503 APACHE_THRIFT_DEFINE_ACCESSOR(fieldQ); 504 #endif 505 #ifndef APACHE_THRIFT_ACCESSOR_fieldR 506 #define APACHE_THRIFT_ACCESSOR_fieldR 507 APACHE_THRIFT_DEFINE_ACCESSOR(fieldR); 508 #endif 509 #ifndef APACHE_THRIFT_ACCESSOR_field0 510 #define APACHE_THRIFT_ACCESSOR_field0 511 APACHE_THRIFT_DEFINE_ACCESSOR(field0); 512 #endif 513 #ifndef APACHE_THRIFT_ACCESSOR_field1 514 #define APACHE_THRIFT_ACCESSOR_field1 515 APACHE_THRIFT_DEFINE_ACCESSOR(field1); 516 #endif 517 #ifndef APACHE_THRIFT_ACCESSOR_field2 518 #define APACHE_THRIFT_ACCESSOR_field2 519 APACHE_THRIFT_DEFINE_ACCESSOR(field2); 520 #endif 521 #ifndef APACHE_THRIFT_ACCESSOR_field3 522 #define APACHE_THRIFT_ACCESSOR_field3 523 APACHE_THRIFT_DEFINE_ACCESSOR(field3); 524 #endif 525 #ifndef APACHE_THRIFT_ACCESSOR_field0 526 #define APACHE_THRIFT_ACCESSOR_field0 527 APACHE_THRIFT_DEFINE_ACCESSOR(field0); 528 #endif 529 #ifndef APACHE_THRIFT_ACCESSOR_field1 530 #define APACHE_THRIFT_ACCESSOR_field1 531 APACHE_THRIFT_DEFINE_ACCESSOR(field1); 532 #endif 533 #ifndef APACHE_THRIFT_ACCESSOR_field2 534 #define APACHE_THRIFT_ACCESSOR_field2 535 APACHE_THRIFT_DEFINE_ACCESSOR(field2); 536 #endif 537 #ifndef APACHE_THRIFT_ACCESSOR_field3 538 #define APACHE_THRIFT_ACCESSOR_field3 539 APACHE_THRIFT_DEFINE_ACCESSOR(field3); 540 #endif 541 #ifndef APACHE_THRIFT_ACCESSOR_field4 542 #define APACHE_THRIFT_ACCESSOR_field4 543 APACHE_THRIFT_DEFINE_ACCESSOR(field4); 544 #endif 545 #ifndef APACHE_THRIFT_ACCESSOR_bi 546 #define APACHE_THRIFT_ACCESSOR_bi 547 APACHE_THRIFT_DEFINE_ACCESSOR(bi); 548 #endif 549 #ifndef APACHE_THRIFT_ACCESSOR_b 550 #define APACHE_THRIFT_ACCESSOR_b 551 APACHE_THRIFT_DEFINE_ACCESSOR(b); 552 #endif 553 #ifndef APACHE_THRIFT_ACCESSOR_c 554 #define APACHE_THRIFT_ACCESSOR_c 555 APACHE_THRIFT_DEFINE_ACCESSOR(c); 556 #endif 557 #ifndef APACHE_THRIFT_ACCESSOR_i_a 558 #define APACHE_THRIFT_ACCESSOR_i_a 559 APACHE_THRIFT_DEFINE_ACCESSOR(i_a); 560 #endif 561 #ifndef APACHE_THRIFT_ACCESSOR_b 562 #define APACHE_THRIFT_ACCESSOR_b 563 APACHE_THRIFT_DEFINE_ACCESSOR(b); 564 #endif 565 #ifndef APACHE_THRIFT_ACCESSOR_c 566 #define APACHE_THRIFT_ACCESSOR_c 567 APACHE_THRIFT_DEFINE_ACCESSOR(c); 568 #endif 569 #ifndef APACHE_THRIFT_ACCESSOR_i_a 570 #define APACHE_THRIFT_ACCESSOR_i_a 571 APACHE_THRIFT_DEFINE_ACCESSOR(i_a); 572 #endif 573 #ifndef APACHE_THRIFT_ACCESSOR_a 574 #define APACHE_THRIFT_ACCESSOR_a 575 APACHE_THRIFT_DEFINE_ACCESSOR(a); 576 #endif 577 #ifndef APACHE_THRIFT_ACCESSOR_get 578 #define APACHE_THRIFT_ACCESSOR_get 579 APACHE_THRIFT_DEFINE_ACCESSOR(get); 580 #endif 581 #ifndef APACHE_THRIFT_ACCESSOR_getter 582 #define APACHE_THRIFT_ACCESSOR_getter 583 APACHE_THRIFT_DEFINE_ACCESSOR(getter); 584 #endif 585 #ifndef APACHE_THRIFT_ACCESSOR_lists 586 #define APACHE_THRIFT_ACCESSOR_lists 587 APACHE_THRIFT_DEFINE_ACCESSOR(lists); 588 #endif 589 #ifndef APACHE_THRIFT_ACCESSOR_maps 590 #define APACHE_THRIFT_ACCESSOR_maps 591 APACHE_THRIFT_DEFINE_ACCESSOR(maps); 592 #endif 593 #ifndef APACHE_THRIFT_ACCESSOR_name 594 #define APACHE_THRIFT_ACCESSOR_name 595 APACHE_THRIFT_DEFINE_ACCESSOR(name); 596 #endif 597 #ifndef APACHE_THRIFT_ACCESSOR_name_to_value 598 #define APACHE_THRIFT_ACCESSOR_name_to_value 599 APACHE_THRIFT_DEFINE_ACCESSOR(name_to_value); 600 #endif 601 #ifndef APACHE_THRIFT_ACCESSOR_names 602 #define APACHE_THRIFT_ACCESSOR_names 603 APACHE_THRIFT_DEFINE_ACCESSOR(names); 604 #endif 605 #ifndef APACHE_THRIFT_ACCESSOR_prefix_tree 606 #define APACHE_THRIFT_ACCESSOR_prefix_tree 607 APACHE_THRIFT_DEFINE_ACCESSOR(prefix_tree); 608 #endif 609 #ifndef APACHE_THRIFT_ACCESSOR_sets 610 #define APACHE_THRIFT_ACCESSOR_sets 611 APACHE_THRIFT_DEFINE_ACCESSOR(sets); 612 #endif 613 #ifndef APACHE_THRIFT_ACCESSOR_setter 614 #define APACHE_THRIFT_ACCESSOR_setter 615 APACHE_THRIFT_DEFINE_ACCESSOR(setter); 616 #endif 617 #ifndef APACHE_THRIFT_ACCESSOR_str 618 #define APACHE_THRIFT_ACCESSOR_str 619 APACHE_THRIFT_DEFINE_ACCESSOR(str); 620 #endif 621 #ifndef APACHE_THRIFT_ACCESSOR_strings 622 #define APACHE_THRIFT_ACCESSOR_strings 623 APACHE_THRIFT_DEFINE_ACCESSOR(strings); 624 #endif 625 #ifndef APACHE_THRIFT_ACCESSOR_type 626 #define APACHE_THRIFT_ACCESSOR_type 627 APACHE_THRIFT_DEFINE_ACCESSOR(type); 628 #endif 629 #ifndef APACHE_THRIFT_ACCESSOR_value 630 #define APACHE_THRIFT_ACCESSOR_value 631 APACHE_THRIFT_DEFINE_ACCESSOR(value); 632 #endif 633 #ifndef APACHE_THRIFT_ACCESSOR_value_to_name 634 #define APACHE_THRIFT_ACCESSOR_value_to_name 635 APACHE_THRIFT_DEFINE_ACCESSOR(value_to_name); 636 #endif 637 #ifndef APACHE_THRIFT_ACCESSOR_values 638 #define APACHE_THRIFT_ACCESSOR_values 639 APACHE_THRIFT_DEFINE_ACCESSOR(values); 640 #endif 641 #ifndef APACHE_THRIFT_ACCESSOR_id 642 #define APACHE_THRIFT_ACCESSOR_id 643 APACHE_THRIFT_DEFINE_ACCESSOR(id); 644 #endif 645 #ifndef APACHE_THRIFT_ACCESSOR_ids 646 #define APACHE_THRIFT_ACCESSOR_ids 647 APACHE_THRIFT_DEFINE_ACCESSOR(ids); 648 #endif 649 #ifndef APACHE_THRIFT_ACCESSOR_descriptor 650 #define APACHE_THRIFT_ACCESSOR_descriptor 651 APACHE_THRIFT_DEFINE_ACCESSOR(descriptor); 652 #endif 653 #ifndef APACHE_THRIFT_ACCESSOR_descriptors 654 #define APACHE_THRIFT_ACCESSOR_descriptors 655 APACHE_THRIFT_DEFINE_ACCESSOR(descriptors); 656 #endif 657 #ifndef APACHE_THRIFT_ACCESSOR_key 658 #define APACHE_THRIFT_ACCESSOR_key 659 APACHE_THRIFT_DEFINE_ACCESSOR(key); 660 #endif 661 #ifndef APACHE_THRIFT_ACCESSOR_keys 662 #define APACHE_THRIFT_ACCESSOR_keys 663 APACHE_THRIFT_DEFINE_ACCESSOR(keys); 664 #endif 665 #ifndef APACHE_THRIFT_ACCESSOR_annotation 666 #define APACHE_THRIFT_ACCESSOR_annotation 667 APACHE_THRIFT_DEFINE_ACCESSOR(annotation); 668 #endif 669 #ifndef APACHE_THRIFT_ACCESSOR_annotations 670 #define APACHE_THRIFT_ACCESSOR_annotations 671 APACHE_THRIFT_DEFINE_ACCESSOR(annotations); 672 #endif 673 #ifndef APACHE_THRIFT_ACCESSOR_member 674 #define APACHE_THRIFT_ACCESSOR_member 675 APACHE_THRIFT_DEFINE_ACCESSOR(member); 676 #endif 677 #ifndef APACHE_THRIFT_ACCESSOR_members 678 #define APACHE_THRIFT_ACCESSOR_members 679 APACHE_THRIFT_DEFINE_ACCESSOR(members); 680 #endif 681 #ifndef APACHE_THRIFT_ACCESSOR_field 682 #define APACHE_THRIFT_ACCESSOR_field 683 APACHE_THRIFT_DEFINE_ACCESSOR(field); 684 #endif 685 #ifndef APACHE_THRIFT_ACCESSOR_fields 686 #define APACHE_THRIFT_ACCESSOR_fields 687 APACHE_THRIFT_DEFINE_ACCESSOR(fields); 688 #endif 689 #ifndef APACHE_THRIFT_ACCESSOR_get 690 #define APACHE_THRIFT_ACCESSOR_get 691 APACHE_THRIFT_DEFINE_ACCESSOR(get); 692 #endif 693 #ifndef APACHE_THRIFT_ACCESSOR_getter 694 #define APACHE_THRIFT_ACCESSOR_getter 695 APACHE_THRIFT_DEFINE_ACCESSOR(getter); 696 #endif 697 #ifndef APACHE_THRIFT_ACCESSOR_lists 698 #define APACHE_THRIFT_ACCESSOR_lists 699 APACHE_THRIFT_DEFINE_ACCESSOR(lists); 700 #endif 701 #ifndef APACHE_THRIFT_ACCESSOR_maps 702 #define APACHE_THRIFT_ACCESSOR_maps 703 APACHE_THRIFT_DEFINE_ACCESSOR(maps); 704 #endif 705 #ifndef APACHE_THRIFT_ACCESSOR_name 706 #define APACHE_THRIFT_ACCESSOR_name 707 APACHE_THRIFT_DEFINE_ACCESSOR(name); 708 #endif 709 #ifndef APACHE_THRIFT_ACCESSOR_name_to_value 710 #define APACHE_THRIFT_ACCESSOR_name_to_value 711 APACHE_THRIFT_DEFINE_ACCESSOR(name_to_value); 712 #endif 713 #ifndef APACHE_THRIFT_ACCESSOR_names 714 #define APACHE_THRIFT_ACCESSOR_names 715 APACHE_THRIFT_DEFINE_ACCESSOR(names); 716 #endif 717 #ifndef APACHE_THRIFT_ACCESSOR_prefix_tree 718 #define APACHE_THRIFT_ACCESSOR_prefix_tree 719 APACHE_THRIFT_DEFINE_ACCESSOR(prefix_tree); 720 #endif 721 #ifndef APACHE_THRIFT_ACCESSOR_sets 722 #define APACHE_THRIFT_ACCESSOR_sets 723 APACHE_THRIFT_DEFINE_ACCESSOR(sets); 724 #endif 725 #ifndef APACHE_THRIFT_ACCESSOR_setter 726 #define APACHE_THRIFT_ACCESSOR_setter 727 APACHE_THRIFT_DEFINE_ACCESSOR(setter); 728 #endif 729 #ifndef APACHE_THRIFT_ACCESSOR_str 730 #define APACHE_THRIFT_ACCESSOR_str 731 APACHE_THRIFT_DEFINE_ACCESSOR(str); 732 #endif 733 #ifndef APACHE_THRIFT_ACCESSOR_strings 734 #define APACHE_THRIFT_ACCESSOR_strings 735 APACHE_THRIFT_DEFINE_ACCESSOR(strings); 736 #endif 737 #ifndef APACHE_THRIFT_ACCESSOR_type 738 #define APACHE_THRIFT_ACCESSOR_type 739 APACHE_THRIFT_DEFINE_ACCESSOR(type); 740 #endif 741 #ifndef APACHE_THRIFT_ACCESSOR_value 742 #define APACHE_THRIFT_ACCESSOR_value 743 APACHE_THRIFT_DEFINE_ACCESSOR(value); 744 #endif 745 #ifndef APACHE_THRIFT_ACCESSOR_value_to_name 746 #define APACHE_THRIFT_ACCESSOR_value_to_name 747 APACHE_THRIFT_DEFINE_ACCESSOR(value_to_name); 748 #endif 749 #ifndef APACHE_THRIFT_ACCESSOR_values 750 #define APACHE_THRIFT_ACCESSOR_values 751 APACHE_THRIFT_DEFINE_ACCESSOR(values); 752 #endif 753 #ifndef APACHE_THRIFT_ACCESSOR_id 754 #define APACHE_THRIFT_ACCESSOR_id 755 APACHE_THRIFT_DEFINE_ACCESSOR(id); 756 #endif 757 #ifndef APACHE_THRIFT_ACCESSOR_ids 758 #define APACHE_THRIFT_ACCESSOR_ids 759 APACHE_THRIFT_DEFINE_ACCESSOR(ids); 760 #endif 761 #ifndef APACHE_THRIFT_ACCESSOR_descriptor 762 #define APACHE_THRIFT_ACCESSOR_descriptor 763 APACHE_THRIFT_DEFINE_ACCESSOR(descriptor); 764 #endif 765 #ifndef APACHE_THRIFT_ACCESSOR_descriptors 766 #define APACHE_THRIFT_ACCESSOR_descriptors 767 APACHE_THRIFT_DEFINE_ACCESSOR(descriptors); 768 #endif 769 #ifndef APACHE_THRIFT_ACCESSOR_key 770 #define APACHE_THRIFT_ACCESSOR_key 771 APACHE_THRIFT_DEFINE_ACCESSOR(key); 772 #endif 773 #ifndef APACHE_THRIFT_ACCESSOR_keys 774 #define APACHE_THRIFT_ACCESSOR_keys 775 APACHE_THRIFT_DEFINE_ACCESSOR(keys); 776 #endif 777 #ifndef APACHE_THRIFT_ACCESSOR_annotation 778 #define APACHE_THRIFT_ACCESSOR_annotation 779 APACHE_THRIFT_DEFINE_ACCESSOR(annotation); 780 #endif 781 #ifndef APACHE_THRIFT_ACCESSOR_annotations 782 #define APACHE_THRIFT_ACCESSOR_annotations 783 APACHE_THRIFT_DEFINE_ACCESSOR(annotations); 784 #endif 785 #ifndef APACHE_THRIFT_ACCESSOR_member 786 #define APACHE_THRIFT_ACCESSOR_member 787 APACHE_THRIFT_DEFINE_ACCESSOR(member); 788 #endif 789 #ifndef APACHE_THRIFT_ACCESSOR_members 790 #define APACHE_THRIFT_ACCESSOR_members 791 APACHE_THRIFT_DEFINE_ACCESSOR(members); 792 #endif 793 #ifndef APACHE_THRIFT_ACCESSOR_field 794 #define APACHE_THRIFT_ACCESSOR_field 795 APACHE_THRIFT_DEFINE_ACCESSOR(field); 796 #endif 797 #ifndef APACHE_THRIFT_ACCESSOR_fields 798 #define APACHE_THRIFT_ACCESSOR_fields 799 APACHE_THRIFT_DEFINE_ACCESSOR(fields); 800 #endif 801 #ifndef APACHE_THRIFT_ACCESSOR_real 802 #define APACHE_THRIFT_ACCESSOR_real 803 APACHE_THRIFT_DEFINE_ACCESSOR(real); 804 #endif 805 #ifndef APACHE_THRIFT_ACCESSOR_fake 806 #define APACHE_THRIFT_ACCESSOR_fake 807 APACHE_THRIFT_DEFINE_ACCESSOR(fake); 808 #endif 809 #ifndef APACHE_THRIFT_ACCESSOR_number 810 #define APACHE_THRIFT_ACCESSOR_number 811 APACHE_THRIFT_DEFINE_ACCESSOR(number); 812 #endif 813 #ifndef APACHE_THRIFT_ACCESSOR_result 814 #define APACHE_THRIFT_ACCESSOR_result 815 APACHE_THRIFT_DEFINE_ACCESSOR(result); 816 #endif 817 #ifndef APACHE_THRIFT_ACCESSOR_phrase 818 #define APACHE_THRIFT_ACCESSOR_phrase 819 APACHE_THRIFT_DEFINE_ACCESSOR(phrase); 820 #endif 821 } // namespace detail 822 } // namespace thrift 823 } // namespace apache 824 825 // BEGIN declare_enums 826 namespace test_cpp2 { namespace cpp_reflection { 827 828 enum class enum1 { 829 field0 = 0, 830 field1 = 1, 831 field2 = 2, 832 }; 833 834 835 836 837 enum class enum2 { 838 field0_2 = 0, 839 field1_2 = 1, 840 field2_2 = 2, 841 }; 842 843 844 845 846 enum class enum3 { 847 field0_3 = 0, 848 field1_3 = 1, 849 }; 850 851 852 853 854 enum class enum_with_special_names { 855 get = 0, 856 getter = 1, 857 lists = 2, 858 maps = 3, 859 name = 4, 860 name_to_value = 5, 861 names = 6, 862 prefix_tree = 7, 863 sets = 8, 864 setter = 9, 865 str = 10, 866 strings = 11, 867 type = 12, 868 value = 13, 869 value_to_name = 14, 870 values = 15, 871 id = 16, 872 ids = 17, 873 descriptor = 18, 874 descriptors = 19, 875 key = 20, 876 keys = 21, 877 annotation = 22, 878 annotations = 23, 879 member = 24, 880 members = 25, 881 field = 26, 882 fields = 27, 883 }; 884 885 886 887 888 }} // test_cpp2::cpp_reflection 889 890 namespace std { 891 template<> struct hash<::test_cpp2::cpp_reflection::enum1> : 892 ::apache::thrift::detail::enum_hash<::test_cpp2::cpp_reflection::enum1> {}; 893 template<> struct hash<::test_cpp2::cpp_reflection::enum2> : 894 ::apache::thrift::detail::enum_hash<::test_cpp2::cpp_reflection::enum2> {}; 895 template<> struct hash<::test_cpp2::cpp_reflection::enum3> : 896 ::apache::thrift::detail::enum_hash<::test_cpp2::cpp_reflection::enum3> {}; 897 template<> struct hash<::test_cpp2::cpp_reflection::enum_with_special_names> : 898 ::apache::thrift::detail::enum_hash<::test_cpp2::cpp_reflection::enum_with_special_names> {}; 899 } // std 900 901 namespace apache { namespace thrift { 902 903 904 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::enum1>; 905 906 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::enum1> { 907 using type = ::test_cpp2::cpp_reflection::enum1; 908 909 static constexpr std::size_t const size = 3; 910 static folly::Range<type const*> const values; 911 static folly::Range<folly::StringPiece const*> const names; 912 913 static char const* findName(type value); 914 static bool findValue(char const* name, type* out); 915 916 static constexpr type min() { return type::field0; } 917 static constexpr type max() { return type::field2; } 918 }; 919 920 921 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::enum2>; 922 923 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::enum2> { 924 using type = ::test_cpp2::cpp_reflection::enum2; 925 926 static constexpr std::size_t const size = 3; 927 static folly::Range<type const*> const values; 928 static folly::Range<folly::StringPiece const*> const names; 929 930 static char const* findName(type value); 931 static bool findValue(char const* name, type* out); 932 933 static constexpr type min() { return type::field0_2; } 934 static constexpr type max() { return type::field2_2; } 935 }; 936 937 938 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::enum3>; 939 940 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::enum3> { 941 using type = ::test_cpp2::cpp_reflection::enum3; 942 943 static constexpr std::size_t const size = 2; 944 static folly::Range<type const*> const values; 945 static folly::Range<folly::StringPiece const*> const names; 946 947 static char const* findName(type value); 948 static bool findValue(char const* name, type* out); 949 950 static constexpr type min() { return type::field0_3; } 951 static constexpr type max() { return type::field1_3; } 952 }; 953 954 955 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::enum_with_special_names>; 956 957 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::enum_with_special_names> { 958 using type = ::test_cpp2::cpp_reflection::enum_with_special_names; 959 960 static constexpr std::size_t const size = 28; 961 static folly::Range<type const*> const values; 962 static folly::Range<folly::StringPiece const*> const names; 963 964 static char const* findName(type value); 965 static bool findValue(char const* name, type* out); 966 967 static constexpr type min() { return type::get; } 968 static constexpr type max() { return type::fields; } 969 }; 970 971 972 }} // apache::thrift 973 974 namespace test_cpp2 { namespace cpp_reflection { 975 976 using _enum1_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<enum1>; 977 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 978 extern const _enum1_EnumMapFactory::ValuesToNamesMapType _enum1_VALUES_TO_NAMES; 979 [[deprecated("use apache::thrift::TEnumTraits")]] 980 extern const _enum1_EnumMapFactory::NamesToValuesMapType _enum1_NAMES_TO_VALUES; 981 982 using _enum2_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<enum2>; 983 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 984 extern const _enum2_EnumMapFactory::ValuesToNamesMapType _enum2_VALUES_TO_NAMES; 985 [[deprecated("use apache::thrift::TEnumTraits")]] 986 extern const _enum2_EnumMapFactory::NamesToValuesMapType _enum2_NAMES_TO_VALUES; 987 988 using _enum3_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<enum3>; 989 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 990 extern const _enum3_EnumMapFactory::ValuesToNamesMapType _enum3_VALUES_TO_NAMES; 991 [[deprecated("use apache::thrift::TEnumTraits")]] 992 extern const _enum3_EnumMapFactory::NamesToValuesMapType _enum3_NAMES_TO_VALUES; 993 994 using _enum_with_special_names_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<enum_with_special_names>; 995 [[deprecated("use apache::thrift::util::enumNameSafe, apache::thrift::util::enumName, or apache::thrift::TEnumTraits")]] 996 extern const _enum_with_special_names_EnumMapFactory::ValuesToNamesMapType _enum_with_special_names_VALUES_TO_NAMES; 997 [[deprecated("use apache::thrift::TEnumTraits")]] 998 extern const _enum_with_special_names_EnumMapFactory::NamesToValuesMapType _enum_with_special_names_NAMES_TO_VALUES; 999 1000 }} // test_cpp2::cpp_reflection 1001 1002 // END declare_enums 1003 // BEGIN forward_declare 1004 namespace test_cpp2 { namespace cpp_reflection { 1005 class union1; 1006 class union2; 1007 class union3; 1008 class structA; 1009 class unionA; 1010 class structB; 1011 class structC; 1012 class struct1; 1013 class struct2; 1014 class struct3; 1015 class struct4; 1016 class struct5; 1017 class struct_binary; 1018 class dep_A_struct; 1019 class dep_B_struct; 1020 class annotated; 1021 class union_with_special_names; 1022 class struct_with_special_names; 1023 class struct_with_indirections; 1024 }} // test_cpp2::cpp_reflection 1025 // END forward_declare 1026 // BEGIN typedefs 1027 namespace test_cpp2 { namespace cpp_reflection { 1028 typedef test_cpp_reflection::custom_structA my_structA; 1029 typedef CppFakeI32 FakeI32; 1030 typedef CppHasANumber HasANumber; 1031 typedef CppHasAResult HasAResult; 1032 typedef CppHasAPhrase HasAPhrase; 1033 1034 }} // test_cpp2::cpp_reflection 1035 // END typedefs 1036 // BEGIN hash_and_equal_to 1037 // END hash_and_equal_to 1038 namespace test_cpp2 { namespace cpp_reflection { 1039 using ::apache::thrift::detail::operator!=; 1040 using ::apache::thrift::detail::operator>; 1041 using ::apache::thrift::detail::operator<=; 1042 using ::apache::thrift::detail::operator>=; 1043 }} // test_cpp2::cpp_reflection 1044 namespace test_cpp2 { namespace cpp_reflection { 1045 class union1 final { 1046 private: 1047 friend struct ::apache::thrift::detail::st::struct_private_access; 1048 1049 // used by a static_assert in the corresponding source 1050 static constexpr bool __fbthrift_cpp2_gen_json = false; 1051 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1052 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1053 1054 void __fbthrift_clear(); 1055 1056 public: 1057 using __fbthrift_cpp2_type = union1; 1058 static constexpr bool __fbthrift_cpp2_is_union = 1059 true; 1060 1061 1062 public: 1063 enum Type : int { 1064 __EMPTY__ = 0, 1065 ui = 1, 1066 ud = 3, 1067 us = 5, 1068 ue = 7, 1069 } ; 1070 1071 union1() 1072 : type_(Type::__EMPTY__) {} 1073 1074 union1(union1&& rhs) noexcept 1075 : type_(Type::__EMPTY__) { 1076 if (this == &rhs) { return; } 1077 if (rhs.type_ == Type::__EMPTY__) { return; } 1078 switch (rhs.type_) { 1079 case Type::ui: 1080 { 1081 set_ui(std::move(rhs.value_.ui)); 1082 break; 1083 } 1084 case Type::ud: 1085 { 1086 set_ud(std::move(rhs.value_.ud)); 1087 break; 1088 } 1089 case Type::us: 1090 { 1091 set_us(std::move(rhs.value_.us)); 1092 break; 1093 } 1094 case Type::ue: 1095 { 1096 set_ue(std::move(rhs.value_.ue)); 1097 break; 1098 } 1099 default: 1100 { 1101 assert(false); 1102 break; 1103 } 1104 } 1105 apache::thrift::clear(rhs); 1106 } 1107 1108 union1(const union1& rhs) 1109 : type_(Type::__EMPTY__) { 1110 if (this == &rhs) { return; } 1111 if (rhs.type_ == Type::__EMPTY__) { return; } 1112 switch (rhs.type_) { 1113 case Type::ui: 1114 { 1115 set_ui(rhs.value_.ui); 1116 break; 1117 } 1118 case Type::ud: 1119 { 1120 set_ud(rhs.value_.ud); 1121 break; 1122 } 1123 case Type::us: 1124 { 1125 set_us(rhs.value_.us); 1126 break; 1127 } 1128 case Type::ue: 1129 { 1130 set_ue(rhs.value_.ue); 1131 break; 1132 } 1133 default: 1134 { 1135 assert(false); 1136 break; 1137 } 1138 } 1139 } 1140 1141 union1& operator=(union1&& rhs) noexcept { 1142 if (this == &rhs) { return *this; } 1143 __fbthrift_clear(); 1144 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1145 switch (rhs.type_) { 1146 case Type::ui: 1147 { 1148 set_ui(std::move(rhs.value_.ui)); 1149 break; 1150 } 1151 case Type::ud: 1152 { 1153 set_ud(std::move(rhs.value_.ud)); 1154 break; 1155 } 1156 case Type::us: 1157 { 1158 set_us(std::move(rhs.value_.us)); 1159 break; 1160 } 1161 case Type::ue: 1162 { 1163 set_ue(std::move(rhs.value_.ue)); 1164 break; 1165 } 1166 default: 1167 { 1168 assert(false); 1169 break; 1170 } 1171 } 1172 apache::thrift::clear(rhs); 1173 return *this; 1174 } 1175 1176 union1& operator=(const union1& rhs) { 1177 if (this == &rhs) { return *this; } 1178 __fbthrift_clear(); 1179 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1180 switch (rhs.type_) { 1181 case Type::ui: 1182 { 1183 set_ui(rhs.value_.ui); 1184 break; 1185 } 1186 case Type::ud: 1187 { 1188 set_ud(rhs.value_.ud); 1189 break; 1190 } 1191 case Type::us: 1192 { 1193 set_us(rhs.value_.us); 1194 break; 1195 } 1196 case Type::ue: 1197 { 1198 set_ue(rhs.value_.ue); 1199 break; 1200 } 1201 default: 1202 { 1203 assert(false); 1204 break; 1205 } 1206 } 1207 return *this; 1208 } 1209 1210 ~union1() { 1211 apache::thrift::clear(*this); 1212 } 1213 union storage_type { 1214 ::std::int32_t ui; 1215 double ud; 1216 ::std::string us; 1217 ::test_cpp2::cpp_reflection::enum1 ue; 1218 1219 storage_type() {} 1220 ~storage_type() {} 1221 } ; 1222 1223 bool operator==(const union1&) const; 1224 bool operator<(const union1&) const; 1225 1226 ::std::int32_t& set_ui(::std::int32_t t = ::std::int32_t()) { 1227 __fbthrift_clear(); 1228 type_ = Type::ui; 1229 ::new (std::addressof(value_.ui)) ::std::int32_t(t); 1230 return value_.ui; 1231 } 1232 1233 double& set_ud(double t = double()) { 1234 __fbthrift_clear(); 1235 type_ = Type::ud; 1236 ::new (std::addressof(value_.ud)) double(t); 1237 return value_.ud; 1238 } 1239 1240 ::std::string& set_us(::std::string const &t) { 1241 __fbthrift_clear(); 1242 type_ = Type::us; 1243 ::new (std::addressof(value_.us)) ::std::string(t); 1244 return value_.us; 1245 } 1246 1247 ::std::string& set_us(::std::string&& t) { 1248 __fbthrift_clear(); 1249 type_ = Type::us; 1250 ::new (std::addressof(value_.us)) ::std::string(std::move(t)); 1251 return value_.us; 1252 } 1253 1254 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_us(T&&... t) { 1255 __fbthrift_clear(); 1256 type_ = Type::us; 1257 ::new (std::addressof(value_.us)) ::std::string(std::forward<T>(t)...); 1258 return value_.us; 1259 } 1260 1261 ::test_cpp2::cpp_reflection::enum1& set_ue(::test_cpp2::cpp_reflection::enum1 t = ::test_cpp2::cpp_reflection::enum1()) { 1262 __fbthrift_clear(); 1263 type_ = Type::ue; 1264 ::new (std::addressof(value_.ue)) ::test_cpp2::cpp_reflection::enum1(t); 1265 return value_.ue; 1266 } 1267 1268 ::std::int32_t const& get_ui() const { 1269 if (type_ != Type::ui) { 1270 ::apache::thrift::detail::throw_on_bad_field_access(); 1271 } 1272 return value_.ui; 1273 } 1274 1275 double const& get_ud() const { 1276 if (type_ != Type::ud) { 1277 ::apache::thrift::detail::throw_on_bad_field_access(); 1278 } 1279 return value_.ud; 1280 } 1281 1282 ::std::string const& get_us() const { 1283 if (type_ != Type::us) { 1284 ::apache::thrift::detail::throw_on_bad_field_access(); 1285 } 1286 return value_.us; 1287 } 1288 1289 ::test_cpp2::cpp_reflection::enum1 const& get_ue() const { 1290 if (type_ != Type::ue) { 1291 ::apache::thrift::detail::throw_on_bad_field_access(); 1292 } 1293 return value_.ue; 1294 } 1295 1296 ::std::int32_t& mutable_ui() { 1297 assert(type_ == Type::ui); 1298 return value_.ui; 1299 } 1300 1301 double& mutable_ud() { 1302 assert(type_ == Type::ud); 1303 return value_.ud; 1304 } 1305 1306 ::std::string& mutable_us() { 1307 assert(type_ == Type::us); 1308 return value_.us; 1309 } 1310 1311 ::test_cpp2::cpp_reflection::enum1& mutable_ue() { 1312 assert(type_ == Type::ue); 1313 return value_.ue; 1314 } 1315 1316 ::std::int32_t move_ui() { 1317 assert(type_ == Type::ui); 1318 return std::move(value_.ui); 1319 } 1320 1321 double move_ud() { 1322 assert(type_ == Type::ud); 1323 return std::move(value_.ud); 1324 } 1325 1326 ::std::string move_us() { 1327 assert(type_ == Type::us); 1328 return std::move(value_.us); 1329 } 1330 1331 ::test_cpp2::cpp_reflection::enum1 move_ue() { 1332 assert(type_ == Type::ue); 1333 return std::move(value_.ue); 1334 } 1335 1336 template <typename..., typename T = ::std::int32_t> 1337 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ui_ref() const& { 1338 return {value_.ui, type_, ui, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1339 } 1340 1341 template <typename..., typename T = ::std::int32_t> 1342 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ui_ref() const&& { 1343 return {std::move(value_.ui), type_, ui, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1344 } 1345 1346 template <typename..., typename T = ::std::int32_t> 1347 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ui_ref() & { 1348 return {value_.ui, type_, ui, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1349 } 1350 1351 template <typename..., typename T = ::std::int32_t> 1352 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ui_ref() && { 1353 return {std::move(value_.ui), type_, ui, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1354 } 1355 template <typename..., typename T = double> 1356 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ud_ref() const& { 1357 return {value_.ud, type_, ud, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1358 } 1359 1360 template <typename..., typename T = double> 1361 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ud_ref() const&& { 1362 return {std::move(value_.ud), type_, ud, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1363 } 1364 1365 template <typename..., typename T = double> 1366 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ud_ref() & { 1367 return {value_.ud, type_, ud, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1368 } 1369 1370 template <typename..., typename T = double> 1371 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ud_ref() && { 1372 return {std::move(value_.ud), type_, ud, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1373 } 1374 template <typename..., typename T = ::std::string> 1375 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> us_ref() const& { 1376 return {value_.us, type_, us, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1377 } 1378 1379 template <typename..., typename T = ::std::string> 1380 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> us_ref() const&& { 1381 return {std::move(value_.us), type_, us, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1382 } 1383 1384 template <typename..., typename T = ::std::string> 1385 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> us_ref() & { 1386 return {value_.us, type_, us, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1387 } 1388 1389 template <typename..., typename T = ::std::string> 1390 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> us_ref() && { 1391 return {std::move(value_.us), type_, us, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1392 } 1393 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1394 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ue_ref() const& { 1395 return {value_.ue, type_, ue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1396 } 1397 1398 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1399 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ue_ref() const&& { 1400 return {std::move(value_.ue), type_, ue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1401 } 1402 1403 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1404 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ue_ref() & { 1405 return {value_.ue, type_, ue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1406 } 1407 1408 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1409 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ue_ref() && { 1410 return {std::move(value_.ue), type_, ue, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1411 } 1412 Type getType() const { return static_cast<Type>(type_); } 1413 1414 template <class Protocol_> 1415 uint32_t read(Protocol_* iprot); 1416 template <class Protocol_> 1417 uint32_t serializedSize(Protocol_ const* prot_) const; 1418 template <class Protocol_> 1419 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 1420 template <class Protocol_> 1421 uint32_t write(Protocol_* prot_) const; 1422 protected: 1423 template <class T> 1424 void destruct(T &val) { 1425 (&val)->~T(); 1426 } 1427 1428 storage_type value_; 1429 std::underlying_type_t<Type> type_; 1430 1431 private: 1432 template <class Protocol_> 1433 void readNoXfer(Protocol_* iprot); 1434 1435 friend class ::apache::thrift::Cpp2Ops<union1>; 1436 friend void swap(union1& a, union1& b); 1437 }; 1438 1439 template <class Protocol_> 1440 uint32_t union1::read(Protocol_* iprot) { 1441 auto _xferStart = iprot->getCursorPosition(); 1442 readNoXfer(iprot); 1443 return iprot->getCursorPosition() - _xferStart; 1444 } 1445 1446 }} // test_cpp2::cpp_reflection 1447 namespace test_cpp2 { namespace cpp_reflection { 1448 class union2 final { 1449 private: 1450 friend struct ::apache::thrift::detail::st::struct_private_access; 1451 1452 // used by a static_assert in the corresponding source 1453 static constexpr bool __fbthrift_cpp2_gen_json = false; 1454 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1455 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1456 1457 void __fbthrift_clear(); 1458 1459 public: 1460 using __fbthrift_cpp2_type = union2; 1461 static constexpr bool __fbthrift_cpp2_is_union = 1462 true; 1463 1464 1465 public: 1466 enum Type : int { 1467 __EMPTY__ = 0, 1468 ui_2 = 1, 1469 ud_2 = 2, 1470 us_2 = 3, 1471 ue_2 = 4, 1472 } ; 1473 1474 union2() 1475 : type_(Type::__EMPTY__) {} 1476 1477 union2(union2&& rhs) noexcept 1478 : type_(Type::__EMPTY__) { 1479 if (this == &rhs) { return; } 1480 if (rhs.type_ == Type::__EMPTY__) { return; } 1481 switch (rhs.type_) { 1482 case Type::ui_2: 1483 { 1484 set_ui_2(std::move(rhs.value_.ui_2)); 1485 break; 1486 } 1487 case Type::ud_2: 1488 { 1489 set_ud_2(std::move(rhs.value_.ud_2)); 1490 break; 1491 } 1492 case Type::us_2: 1493 { 1494 set_us_2(std::move(rhs.value_.us_2)); 1495 break; 1496 } 1497 case Type::ue_2: 1498 { 1499 set_ue_2(std::move(rhs.value_.ue_2)); 1500 break; 1501 } 1502 default: 1503 { 1504 assert(false); 1505 break; 1506 } 1507 } 1508 apache::thrift::clear(rhs); 1509 } 1510 1511 union2(const union2& rhs) 1512 : type_(Type::__EMPTY__) { 1513 if (this == &rhs) { return; } 1514 if (rhs.type_ == Type::__EMPTY__) { return; } 1515 switch (rhs.type_) { 1516 case Type::ui_2: 1517 { 1518 set_ui_2(rhs.value_.ui_2); 1519 break; 1520 } 1521 case Type::ud_2: 1522 { 1523 set_ud_2(rhs.value_.ud_2); 1524 break; 1525 } 1526 case Type::us_2: 1527 { 1528 set_us_2(rhs.value_.us_2); 1529 break; 1530 } 1531 case Type::ue_2: 1532 { 1533 set_ue_2(rhs.value_.ue_2); 1534 break; 1535 } 1536 default: 1537 { 1538 assert(false); 1539 break; 1540 } 1541 } 1542 } 1543 1544 union2& operator=(union2&& rhs) noexcept { 1545 if (this == &rhs) { return *this; } 1546 __fbthrift_clear(); 1547 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1548 switch (rhs.type_) { 1549 case Type::ui_2: 1550 { 1551 set_ui_2(std::move(rhs.value_.ui_2)); 1552 break; 1553 } 1554 case Type::ud_2: 1555 { 1556 set_ud_2(std::move(rhs.value_.ud_2)); 1557 break; 1558 } 1559 case Type::us_2: 1560 { 1561 set_us_2(std::move(rhs.value_.us_2)); 1562 break; 1563 } 1564 case Type::ue_2: 1565 { 1566 set_ue_2(std::move(rhs.value_.ue_2)); 1567 break; 1568 } 1569 default: 1570 { 1571 assert(false); 1572 break; 1573 } 1574 } 1575 apache::thrift::clear(rhs); 1576 return *this; 1577 } 1578 1579 union2& operator=(const union2& rhs) { 1580 if (this == &rhs) { return *this; } 1581 __fbthrift_clear(); 1582 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1583 switch (rhs.type_) { 1584 case Type::ui_2: 1585 { 1586 set_ui_2(rhs.value_.ui_2); 1587 break; 1588 } 1589 case Type::ud_2: 1590 { 1591 set_ud_2(rhs.value_.ud_2); 1592 break; 1593 } 1594 case Type::us_2: 1595 { 1596 set_us_2(rhs.value_.us_2); 1597 break; 1598 } 1599 case Type::ue_2: 1600 { 1601 set_ue_2(rhs.value_.ue_2); 1602 break; 1603 } 1604 default: 1605 { 1606 assert(false); 1607 break; 1608 } 1609 } 1610 return *this; 1611 } 1612 1613 ~union2() { 1614 apache::thrift::clear(*this); 1615 } 1616 union storage_type { 1617 ::std::int32_t ui_2; 1618 double ud_2; 1619 ::std::string us_2; 1620 ::test_cpp2::cpp_reflection::enum1 ue_2; 1621 1622 storage_type() {} 1623 ~storage_type() {} 1624 } ; 1625 1626 bool operator==(const union2&) const; 1627 bool operator<(const union2&) const; 1628 1629 ::std::int32_t& set_ui_2(::std::int32_t t = ::std::int32_t()) { 1630 __fbthrift_clear(); 1631 type_ = Type::ui_2; 1632 ::new (std::addressof(value_.ui_2)) ::std::int32_t(t); 1633 return value_.ui_2; 1634 } 1635 1636 double& set_ud_2(double t = double()) { 1637 __fbthrift_clear(); 1638 type_ = Type::ud_2; 1639 ::new (std::addressof(value_.ud_2)) double(t); 1640 return value_.ud_2; 1641 } 1642 1643 ::std::string& set_us_2(::std::string const &t) { 1644 __fbthrift_clear(); 1645 type_ = Type::us_2; 1646 ::new (std::addressof(value_.us_2)) ::std::string(t); 1647 return value_.us_2; 1648 } 1649 1650 ::std::string& set_us_2(::std::string&& t) { 1651 __fbthrift_clear(); 1652 type_ = Type::us_2; 1653 ::new (std::addressof(value_.us_2)) ::std::string(std::move(t)); 1654 return value_.us_2; 1655 } 1656 1657 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_us_2(T&&... t) { 1658 __fbthrift_clear(); 1659 type_ = Type::us_2; 1660 ::new (std::addressof(value_.us_2)) ::std::string(std::forward<T>(t)...); 1661 return value_.us_2; 1662 } 1663 1664 ::test_cpp2::cpp_reflection::enum1& set_ue_2(::test_cpp2::cpp_reflection::enum1 t = ::test_cpp2::cpp_reflection::enum1()) { 1665 __fbthrift_clear(); 1666 type_ = Type::ue_2; 1667 ::new (std::addressof(value_.ue_2)) ::test_cpp2::cpp_reflection::enum1(t); 1668 return value_.ue_2; 1669 } 1670 1671 ::std::int32_t const& get_ui_2() const { 1672 if (type_ != Type::ui_2) { 1673 ::apache::thrift::detail::throw_on_bad_field_access(); 1674 } 1675 return value_.ui_2; 1676 } 1677 1678 double const& get_ud_2() const { 1679 if (type_ != Type::ud_2) { 1680 ::apache::thrift::detail::throw_on_bad_field_access(); 1681 } 1682 return value_.ud_2; 1683 } 1684 1685 ::std::string const& get_us_2() const { 1686 if (type_ != Type::us_2) { 1687 ::apache::thrift::detail::throw_on_bad_field_access(); 1688 } 1689 return value_.us_2; 1690 } 1691 1692 ::test_cpp2::cpp_reflection::enum1 const& get_ue_2() const { 1693 if (type_ != Type::ue_2) { 1694 ::apache::thrift::detail::throw_on_bad_field_access(); 1695 } 1696 return value_.ue_2; 1697 } 1698 1699 ::std::int32_t& mutable_ui_2() { 1700 assert(type_ == Type::ui_2); 1701 return value_.ui_2; 1702 } 1703 1704 double& mutable_ud_2() { 1705 assert(type_ == Type::ud_2); 1706 return value_.ud_2; 1707 } 1708 1709 ::std::string& mutable_us_2() { 1710 assert(type_ == Type::us_2); 1711 return value_.us_2; 1712 } 1713 1714 ::test_cpp2::cpp_reflection::enum1& mutable_ue_2() { 1715 assert(type_ == Type::ue_2); 1716 return value_.ue_2; 1717 } 1718 1719 ::std::int32_t move_ui_2() { 1720 assert(type_ == Type::ui_2); 1721 return std::move(value_.ui_2); 1722 } 1723 1724 double move_ud_2() { 1725 assert(type_ == Type::ud_2); 1726 return std::move(value_.ud_2); 1727 } 1728 1729 ::std::string move_us_2() { 1730 assert(type_ == Type::us_2); 1731 return std::move(value_.us_2); 1732 } 1733 1734 ::test_cpp2::cpp_reflection::enum1 move_ue_2() { 1735 assert(type_ == Type::ue_2); 1736 return std::move(value_.ue_2); 1737 } 1738 1739 template <typename..., typename T = ::std::int32_t> 1740 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ui_2_ref() const& { 1741 return {value_.ui_2, type_, ui_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1742 } 1743 1744 template <typename..., typename T = ::std::int32_t> 1745 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ui_2_ref() const&& { 1746 return {std::move(value_.ui_2), type_, ui_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1747 } 1748 1749 template <typename..., typename T = ::std::int32_t> 1750 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ui_2_ref() & { 1751 return {value_.ui_2, type_, ui_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1752 } 1753 1754 template <typename..., typename T = ::std::int32_t> 1755 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ui_2_ref() && { 1756 return {std::move(value_.ui_2), type_, ui_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1757 } 1758 template <typename..., typename T = double> 1759 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ud_2_ref() const& { 1760 return {value_.ud_2, type_, ud_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1761 } 1762 1763 template <typename..., typename T = double> 1764 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ud_2_ref() const&& { 1765 return {std::move(value_.ud_2), type_, ud_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1766 } 1767 1768 template <typename..., typename T = double> 1769 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ud_2_ref() & { 1770 return {value_.ud_2, type_, ud_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1771 } 1772 1773 template <typename..., typename T = double> 1774 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ud_2_ref() && { 1775 return {std::move(value_.ud_2), type_, ud_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1776 } 1777 template <typename..., typename T = ::std::string> 1778 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> us_2_ref() const& { 1779 return {value_.us_2, type_, us_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1780 } 1781 1782 template <typename..., typename T = ::std::string> 1783 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> us_2_ref() const&& { 1784 return {std::move(value_.us_2), type_, us_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1785 } 1786 1787 template <typename..., typename T = ::std::string> 1788 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> us_2_ref() & { 1789 return {value_.us_2, type_, us_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1790 } 1791 1792 template <typename..., typename T = ::std::string> 1793 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> us_2_ref() && { 1794 return {std::move(value_.us_2), type_, us_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1795 } 1796 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1797 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ue_2_ref() const& { 1798 return {value_.ue_2, type_, ue_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1799 } 1800 1801 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1802 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ue_2_ref() const&& { 1803 return {std::move(value_.ue_2), type_, ue_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1804 } 1805 1806 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1807 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ue_2_ref() & { 1808 return {value_.ue_2, type_, ue_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1809 } 1810 1811 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 1812 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ue_2_ref() && { 1813 return {std::move(value_.ue_2), type_, ue_2, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 1814 } 1815 Type getType() const { return static_cast<Type>(type_); } 1816 1817 template <class Protocol_> 1818 uint32_t read(Protocol_* iprot); 1819 template <class Protocol_> 1820 uint32_t serializedSize(Protocol_ const* prot_) const; 1821 template <class Protocol_> 1822 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 1823 template <class Protocol_> 1824 uint32_t write(Protocol_* prot_) const; 1825 protected: 1826 template <class T> 1827 void destruct(T &val) { 1828 (&val)->~T(); 1829 } 1830 1831 storage_type value_; 1832 std::underlying_type_t<Type> type_; 1833 1834 private: 1835 template <class Protocol_> 1836 void readNoXfer(Protocol_* iprot); 1837 1838 friend class ::apache::thrift::Cpp2Ops<union2>; 1839 friend void swap(union2& a, union2& b); 1840 }; 1841 1842 template <class Protocol_> 1843 uint32_t union2::read(Protocol_* iprot) { 1844 auto _xferStart = iprot->getCursorPosition(); 1845 readNoXfer(iprot); 1846 return iprot->getCursorPosition() - _xferStart; 1847 } 1848 1849 }} // test_cpp2::cpp_reflection 1850 namespace test_cpp2 { namespace cpp_reflection { 1851 class union3 final { 1852 private: 1853 friend struct ::apache::thrift::detail::st::struct_private_access; 1854 1855 // used by a static_assert in the corresponding source 1856 static constexpr bool __fbthrift_cpp2_gen_json = false; 1857 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 1858 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 1859 1860 void __fbthrift_clear(); 1861 1862 public: 1863 using __fbthrift_cpp2_type = union3; 1864 static constexpr bool __fbthrift_cpp2_is_union = 1865 true; 1866 1867 1868 public: 1869 enum Type : int { 1870 __EMPTY__ = 0, 1871 ui_3 = 1, 1872 ud_3 = 2, 1873 us_3 = 3, 1874 ue_3 = 4, 1875 } ; 1876 1877 union3() 1878 : type_(Type::__EMPTY__) {} 1879 1880 union3(union3&& rhs) noexcept 1881 : type_(Type::__EMPTY__) { 1882 if (this == &rhs) { return; } 1883 if (rhs.type_ == Type::__EMPTY__) { return; } 1884 switch (rhs.type_) { 1885 case Type::ui_3: 1886 { 1887 set_ui_3(std::move(rhs.value_.ui_3)); 1888 break; 1889 } 1890 case Type::ud_3: 1891 { 1892 set_ud_3(std::move(rhs.value_.ud_3)); 1893 break; 1894 } 1895 case Type::us_3: 1896 { 1897 set_us_3(std::move(rhs.value_.us_3)); 1898 break; 1899 } 1900 case Type::ue_3: 1901 { 1902 set_ue_3(std::move(rhs.value_.ue_3)); 1903 break; 1904 } 1905 default: 1906 { 1907 assert(false); 1908 break; 1909 } 1910 } 1911 apache::thrift::clear(rhs); 1912 } 1913 1914 union3(const union3& rhs) 1915 : type_(Type::__EMPTY__) { 1916 if (this == &rhs) { return; } 1917 if (rhs.type_ == Type::__EMPTY__) { return; } 1918 switch (rhs.type_) { 1919 case Type::ui_3: 1920 { 1921 set_ui_3(rhs.value_.ui_3); 1922 break; 1923 } 1924 case Type::ud_3: 1925 { 1926 set_ud_3(rhs.value_.ud_3); 1927 break; 1928 } 1929 case Type::us_3: 1930 { 1931 set_us_3(rhs.value_.us_3); 1932 break; 1933 } 1934 case Type::ue_3: 1935 { 1936 set_ue_3(rhs.value_.ue_3); 1937 break; 1938 } 1939 default: 1940 { 1941 assert(false); 1942 break; 1943 } 1944 } 1945 } 1946 1947 union3& operator=(union3&& rhs) noexcept { 1948 if (this == &rhs) { return *this; } 1949 __fbthrift_clear(); 1950 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1951 switch (rhs.type_) { 1952 case Type::ui_3: 1953 { 1954 set_ui_3(std::move(rhs.value_.ui_3)); 1955 break; 1956 } 1957 case Type::ud_3: 1958 { 1959 set_ud_3(std::move(rhs.value_.ud_3)); 1960 break; 1961 } 1962 case Type::us_3: 1963 { 1964 set_us_3(std::move(rhs.value_.us_3)); 1965 break; 1966 } 1967 case Type::ue_3: 1968 { 1969 set_ue_3(std::move(rhs.value_.ue_3)); 1970 break; 1971 } 1972 default: 1973 { 1974 assert(false); 1975 break; 1976 } 1977 } 1978 apache::thrift::clear(rhs); 1979 return *this; 1980 } 1981 1982 union3& operator=(const union3& rhs) { 1983 if (this == &rhs) { return *this; } 1984 __fbthrift_clear(); 1985 if (rhs.type_ == Type::__EMPTY__) { return *this; } 1986 switch (rhs.type_) { 1987 case Type::ui_3: 1988 { 1989 set_ui_3(rhs.value_.ui_3); 1990 break; 1991 } 1992 case Type::ud_3: 1993 { 1994 set_ud_3(rhs.value_.ud_3); 1995 break; 1996 } 1997 case Type::us_3: 1998 { 1999 set_us_3(rhs.value_.us_3); 2000 break; 2001 } 2002 case Type::ue_3: 2003 { 2004 set_ue_3(rhs.value_.ue_3); 2005 break; 2006 } 2007 default: 2008 { 2009 assert(false); 2010 break; 2011 } 2012 } 2013 return *this; 2014 } 2015 2016 ~union3() { 2017 apache::thrift::clear(*this); 2018 } 2019 union storage_type { 2020 ::std::int32_t ui_3; 2021 double ud_3; 2022 ::std::string us_3; 2023 ::test_cpp2::cpp_reflection::enum1 ue_3; 2024 2025 storage_type() {} 2026 ~storage_type() {} 2027 } ; 2028 2029 bool operator==(const union3&) const; 2030 bool operator<(const union3&) const; 2031 2032 ::std::int32_t& set_ui_3(::std::int32_t t = ::std::int32_t()) { 2033 __fbthrift_clear(); 2034 type_ = Type::ui_3; 2035 ::new (std::addressof(value_.ui_3)) ::std::int32_t(t); 2036 return value_.ui_3; 2037 } 2038 2039 double& set_ud_3(double t = double()) { 2040 __fbthrift_clear(); 2041 type_ = Type::ud_3; 2042 ::new (std::addressof(value_.ud_3)) double(t); 2043 return value_.ud_3; 2044 } 2045 2046 ::std::string& set_us_3(::std::string const &t) { 2047 __fbthrift_clear(); 2048 type_ = Type::us_3; 2049 ::new (std::addressof(value_.us_3)) ::std::string(t); 2050 return value_.us_3; 2051 } 2052 2053 ::std::string& set_us_3(::std::string&& t) { 2054 __fbthrift_clear(); 2055 type_ = Type::us_3; 2056 ::new (std::addressof(value_.us_3)) ::std::string(std::move(t)); 2057 return value_.us_3; 2058 } 2059 2060 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_us_3(T&&... t) { 2061 __fbthrift_clear(); 2062 type_ = Type::us_3; 2063 ::new (std::addressof(value_.us_3)) ::std::string(std::forward<T>(t)...); 2064 return value_.us_3; 2065 } 2066 2067 ::test_cpp2::cpp_reflection::enum1& set_ue_3(::test_cpp2::cpp_reflection::enum1 t = ::test_cpp2::cpp_reflection::enum1()) { 2068 __fbthrift_clear(); 2069 type_ = Type::ue_3; 2070 ::new (std::addressof(value_.ue_3)) ::test_cpp2::cpp_reflection::enum1(t); 2071 return value_.ue_3; 2072 } 2073 2074 ::std::int32_t const& get_ui_3() const { 2075 if (type_ != Type::ui_3) { 2076 ::apache::thrift::detail::throw_on_bad_field_access(); 2077 } 2078 return value_.ui_3; 2079 } 2080 2081 double const& get_ud_3() const { 2082 if (type_ != Type::ud_3) { 2083 ::apache::thrift::detail::throw_on_bad_field_access(); 2084 } 2085 return value_.ud_3; 2086 } 2087 2088 ::std::string const& get_us_3() const { 2089 if (type_ != Type::us_3) { 2090 ::apache::thrift::detail::throw_on_bad_field_access(); 2091 } 2092 return value_.us_3; 2093 } 2094 2095 ::test_cpp2::cpp_reflection::enum1 const& get_ue_3() const { 2096 if (type_ != Type::ue_3) { 2097 ::apache::thrift::detail::throw_on_bad_field_access(); 2098 } 2099 return value_.ue_3; 2100 } 2101 2102 ::std::int32_t& mutable_ui_3() { 2103 assert(type_ == Type::ui_3); 2104 return value_.ui_3; 2105 } 2106 2107 double& mutable_ud_3() { 2108 assert(type_ == Type::ud_3); 2109 return value_.ud_3; 2110 } 2111 2112 ::std::string& mutable_us_3() { 2113 assert(type_ == Type::us_3); 2114 return value_.us_3; 2115 } 2116 2117 ::test_cpp2::cpp_reflection::enum1& mutable_ue_3() { 2118 assert(type_ == Type::ue_3); 2119 return value_.ue_3; 2120 } 2121 2122 ::std::int32_t move_ui_3() { 2123 assert(type_ == Type::ui_3); 2124 return std::move(value_.ui_3); 2125 } 2126 2127 double move_ud_3() { 2128 assert(type_ == Type::ud_3); 2129 return std::move(value_.ud_3); 2130 } 2131 2132 ::std::string move_us_3() { 2133 assert(type_ == Type::us_3); 2134 return std::move(value_.us_3); 2135 } 2136 2137 ::test_cpp2::cpp_reflection::enum1 move_ue_3() { 2138 assert(type_ == Type::ue_3); 2139 return std::move(value_.ue_3); 2140 } 2141 2142 template <typename..., typename T = ::std::int32_t> 2143 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ui_3_ref() const& { 2144 return {value_.ui_3, type_, ui_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2145 } 2146 2147 template <typename..., typename T = ::std::int32_t> 2148 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ui_3_ref() const&& { 2149 return {std::move(value_.ui_3), type_, ui_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2150 } 2151 2152 template <typename..., typename T = ::std::int32_t> 2153 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ui_3_ref() & { 2154 return {value_.ui_3, type_, ui_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2155 } 2156 2157 template <typename..., typename T = ::std::int32_t> 2158 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ui_3_ref() && { 2159 return {std::move(value_.ui_3), type_, ui_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2160 } 2161 template <typename..., typename T = double> 2162 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ud_3_ref() const& { 2163 return {value_.ud_3, type_, ud_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2164 } 2165 2166 template <typename..., typename T = double> 2167 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ud_3_ref() const&& { 2168 return {std::move(value_.ud_3), type_, ud_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2169 } 2170 2171 template <typename..., typename T = double> 2172 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ud_3_ref() & { 2173 return {value_.ud_3, type_, ud_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2174 } 2175 2176 template <typename..., typename T = double> 2177 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ud_3_ref() && { 2178 return {std::move(value_.ud_3), type_, ud_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2179 } 2180 template <typename..., typename T = ::std::string> 2181 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> us_3_ref() const& { 2182 return {value_.us_3, type_, us_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2183 } 2184 2185 template <typename..., typename T = ::std::string> 2186 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> us_3_ref() const&& { 2187 return {std::move(value_.us_3), type_, us_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2188 } 2189 2190 template <typename..., typename T = ::std::string> 2191 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> us_3_ref() & { 2192 return {value_.us_3, type_, us_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2193 } 2194 2195 template <typename..., typename T = ::std::string> 2196 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> us_3_ref() && { 2197 return {std::move(value_.us_3), type_, us_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2198 } 2199 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2200 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ue_3_ref() const& { 2201 return {value_.ue_3, type_, ue_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2202 } 2203 2204 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2205 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ue_3_ref() const&& { 2206 return {std::move(value_.ue_3), type_, ue_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2207 } 2208 2209 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2210 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ue_3_ref() & { 2211 return {value_.ue_3, type_, ue_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2212 } 2213 2214 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2215 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ue_3_ref() && { 2216 return {std::move(value_.ue_3), type_, ue_3, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2217 } 2218 Type getType() const { return static_cast<Type>(type_); } 2219 2220 template <class Protocol_> 2221 uint32_t read(Protocol_* iprot); 2222 template <class Protocol_> 2223 uint32_t serializedSize(Protocol_ const* prot_) const; 2224 template <class Protocol_> 2225 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 2226 template <class Protocol_> 2227 uint32_t write(Protocol_* prot_) const; 2228 protected: 2229 template <class T> 2230 void destruct(T &val) { 2231 (&val)->~T(); 2232 } 2233 2234 storage_type value_; 2235 std::underlying_type_t<Type> type_; 2236 2237 private: 2238 template <class Protocol_> 2239 void readNoXfer(Protocol_* iprot); 2240 2241 friend class ::apache::thrift::Cpp2Ops<union3>; 2242 friend void swap(union3& a, union3& b); 2243 }; 2244 2245 template <class Protocol_> 2246 uint32_t union3::read(Protocol_* iprot) { 2247 auto _xferStart = iprot->getCursorPosition(); 2248 readNoXfer(iprot); 2249 return iprot->getCursorPosition() - _xferStart; 2250 } 2251 2252 }} // test_cpp2::cpp_reflection 2253 namespace test_cpp2 { namespace cpp_reflection { 2254 class structA final { 2255 private: 2256 friend struct ::apache::thrift::detail::st::struct_private_access; 2257 2258 // used by a static_assert in the corresponding source 2259 static constexpr bool __fbthrift_cpp2_gen_json = false; 2260 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 2261 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 2262 2263 void __fbthrift_clear(); 2264 2265 public: 2266 using __fbthrift_cpp2_type = structA; 2267 static constexpr bool __fbthrift_cpp2_is_union = 2268 false; 2269 2270 2271 public: 2272 2273 structA() : 2274 __fbthrift_field_a() { 2275 } 2276 // FragileConstructor for use in initialization lists only. 2277 [[deprecated("This constructor is deprecated")]] 2278 structA(apache::thrift::FragileConstructor, ::std::int32_t a__arg, ::std::string b__arg); 2279 2280 structA(structA&&) noexcept; 2281 2282 structA(const structA& src); 2283 2284 2285 structA& operator=(structA&&) noexcept; 2286 structA& operator=(const structA& src); 2287 private: 2288 ::std::int32_t __fbthrift_field_a; 2289 private: 2290 ::std::string __fbthrift_field_b; 2291 private: 2292 apache::thrift::detail::isset_bitset<2, false> __isset; 2293 2294 public: 2295 2296 bool operator==(const structA&) const; 2297 bool operator<(const structA&) const; 2298 2299 template <typename..., typename T = ::std::int32_t> 2300 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_ref() const& { 2301 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 2302 } 2303 2304 template <typename..., typename T = ::std::int32_t> 2305 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_ref() const&& { 2306 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 2307 } 2308 2309 template <typename..., typename T = ::std::int32_t> 2310 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_ref() & { 2311 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 2312 } 2313 2314 template <typename..., typename T = ::std::int32_t> 2315 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_ref() && { 2316 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 2317 } 2318 2319 template <typename..., typename T = ::std::int32_t> 2320 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a() const& { 2321 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 2322 } 2323 2324 template <typename..., typename T = ::std::int32_t> 2325 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a() const&& { 2326 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 2327 } 2328 2329 template <typename..., typename T = ::std::int32_t> 2330 FOLLY_ERASE ::apache::thrift::field_ref<T&> a() & { 2331 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 2332 } 2333 2334 template <typename..., typename T = ::std::int32_t> 2335 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a() && { 2336 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 2337 } 2338 2339 template <typename..., typename T = ::std::string> 2340 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b_ref() const& { 2341 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 2342 } 2343 2344 template <typename..., typename T = ::std::string> 2345 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b_ref() const&& { 2346 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 2347 } 2348 2349 template <typename..., typename T = ::std::string> 2350 FOLLY_ERASE ::apache::thrift::field_ref<T&> b_ref() & { 2351 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 2352 } 2353 2354 template <typename..., typename T = ::std::string> 2355 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b_ref() && { 2356 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 2357 } 2358 2359 template <typename..., typename T = ::std::string> 2360 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b() const& { 2361 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 2362 } 2363 2364 template <typename..., typename T = ::std::string> 2365 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b() const&& { 2366 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 2367 } 2368 2369 template <typename..., typename T = ::std::string> 2370 FOLLY_ERASE ::apache::thrift::field_ref<T&> b() & { 2371 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 2372 } 2373 2374 template <typename..., typename T = ::std::string> 2375 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b() && { 2376 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 2377 } 2378 2379 ::std::int32_t get_a() const { 2380 return __fbthrift_field_a; 2381 } 2382 2383 [[deprecated("Use `FOO.a_ref() = BAR;` instead of `FOO.set_a(BAR);`")]] 2384 ::std::int32_t& set_a(::std::int32_t a_) { 2385 a_ref() = a_; 2386 return __fbthrift_field_a; 2387 } 2388 2389 const ::std::string& get_b() const& { 2390 return __fbthrift_field_b; 2391 } 2392 2393 ::std::string get_b() && { 2394 return std::move(__fbthrift_field_b); 2395 } 2396 2397 template <typename T_structA_b_struct_setter = ::std::string> 2398 [[deprecated("Use `FOO.b_ref() = BAR;` instead of `FOO.set_b(BAR);`")]] 2399 ::std::string& set_b(T_structA_b_struct_setter&& b_) { 2400 b_ref() = std::forward<T_structA_b_struct_setter>(b_); 2401 return __fbthrift_field_b; 2402 } 2403 2404 template <class Protocol_> 2405 uint32_t read(Protocol_* iprot); 2406 template <class Protocol_> 2407 uint32_t serializedSize(Protocol_ const* prot_) const; 2408 template <class Protocol_> 2409 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 2410 template <class Protocol_> 2411 uint32_t write(Protocol_* prot_) const; 2412 2413 private: 2414 template <class Protocol_> 2415 void readNoXfer(Protocol_* iprot); 2416 2417 friend class ::apache::thrift::Cpp2Ops<structA>; 2418 friend void swap(structA& a, structA& b); 2419 }; 2420 2421 template <class Protocol_> 2422 uint32_t structA::read(Protocol_* iprot) { 2423 auto _xferStart = iprot->getCursorPosition(); 2424 readNoXfer(iprot); 2425 return iprot->getCursorPosition() - _xferStart; 2426 } 2427 2428 }} // test_cpp2::cpp_reflection 2429 namespace test_cpp2 { namespace cpp_reflection { 2430 class unionA final { 2431 private: 2432 friend struct ::apache::thrift::detail::st::struct_private_access; 2433 2434 // used by a static_assert in the corresponding source 2435 static constexpr bool __fbthrift_cpp2_gen_json = false; 2436 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 2437 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 2438 2439 void __fbthrift_clear(); 2440 2441 public: 2442 using __fbthrift_cpp2_type = unionA; 2443 static constexpr bool __fbthrift_cpp2_is_union = 2444 true; 2445 2446 2447 public: 2448 enum Type : int { 2449 __EMPTY__ = 0, 2450 i = 1, 2451 d = 2, 2452 s = 3, 2453 e = 4, 2454 a = 5, 2455 } ; 2456 2457 unionA() 2458 : type_(Type::__EMPTY__) {} 2459 2460 unionA(unionA&& rhs) noexcept 2461 : type_(Type::__EMPTY__) { 2462 if (this == &rhs) { return; } 2463 if (rhs.type_ == Type::__EMPTY__) { return; } 2464 switch (rhs.type_) { 2465 case Type::i: 2466 { 2467 set_i(std::move(rhs.value_.i)); 2468 break; 2469 } 2470 case Type::d: 2471 { 2472 set_d(std::move(rhs.value_.d)); 2473 break; 2474 } 2475 case Type::s: 2476 { 2477 set_s(std::move(rhs.value_.s)); 2478 break; 2479 } 2480 case Type::e: 2481 { 2482 set_e(std::move(rhs.value_.e)); 2483 break; 2484 } 2485 case Type::a: 2486 { 2487 set_a(std::move(rhs.value_.a)); 2488 break; 2489 } 2490 default: 2491 { 2492 assert(false); 2493 break; 2494 } 2495 } 2496 apache::thrift::clear(rhs); 2497 } 2498 2499 unionA(const unionA& rhs) 2500 : type_(Type::__EMPTY__) { 2501 if (this == &rhs) { return; } 2502 if (rhs.type_ == Type::__EMPTY__) { return; } 2503 switch (rhs.type_) { 2504 case Type::i: 2505 { 2506 set_i(rhs.value_.i); 2507 break; 2508 } 2509 case Type::d: 2510 { 2511 set_d(rhs.value_.d); 2512 break; 2513 } 2514 case Type::s: 2515 { 2516 set_s(rhs.value_.s); 2517 break; 2518 } 2519 case Type::e: 2520 { 2521 set_e(rhs.value_.e); 2522 break; 2523 } 2524 case Type::a: 2525 { 2526 set_a(rhs.value_.a); 2527 break; 2528 } 2529 default: 2530 { 2531 assert(false); 2532 break; 2533 } 2534 } 2535 } 2536 2537 unionA& operator=(unionA&& rhs) noexcept { 2538 if (this == &rhs) { return *this; } 2539 __fbthrift_clear(); 2540 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2541 switch (rhs.type_) { 2542 case Type::i: 2543 { 2544 set_i(std::move(rhs.value_.i)); 2545 break; 2546 } 2547 case Type::d: 2548 { 2549 set_d(std::move(rhs.value_.d)); 2550 break; 2551 } 2552 case Type::s: 2553 { 2554 set_s(std::move(rhs.value_.s)); 2555 break; 2556 } 2557 case Type::e: 2558 { 2559 set_e(std::move(rhs.value_.e)); 2560 break; 2561 } 2562 case Type::a: 2563 { 2564 set_a(std::move(rhs.value_.a)); 2565 break; 2566 } 2567 default: 2568 { 2569 assert(false); 2570 break; 2571 } 2572 } 2573 apache::thrift::clear(rhs); 2574 return *this; 2575 } 2576 2577 unionA& operator=(const unionA& rhs) { 2578 if (this == &rhs) { return *this; } 2579 __fbthrift_clear(); 2580 if (rhs.type_ == Type::__EMPTY__) { return *this; } 2581 switch (rhs.type_) { 2582 case Type::i: 2583 { 2584 set_i(rhs.value_.i); 2585 break; 2586 } 2587 case Type::d: 2588 { 2589 set_d(rhs.value_.d); 2590 break; 2591 } 2592 case Type::s: 2593 { 2594 set_s(rhs.value_.s); 2595 break; 2596 } 2597 case Type::e: 2598 { 2599 set_e(rhs.value_.e); 2600 break; 2601 } 2602 case Type::a: 2603 { 2604 set_a(rhs.value_.a); 2605 break; 2606 } 2607 default: 2608 { 2609 assert(false); 2610 break; 2611 } 2612 } 2613 return *this; 2614 } 2615 2616 ~unionA() { 2617 apache::thrift::clear(*this); 2618 } 2619 union storage_type { 2620 ::std::int32_t i; 2621 double d; 2622 ::std::string s; 2623 ::test_cpp2::cpp_reflection::enum1 e; 2624 ::test_cpp2::cpp_reflection::structA a; 2625 2626 storage_type() {} 2627 ~storage_type() {} 2628 } ; 2629 2630 bool operator==(const unionA&) const; 2631 bool operator<(const unionA&) const; 2632 2633 ::std::int32_t& set_i(::std::int32_t t = ::std::int32_t()) { 2634 __fbthrift_clear(); 2635 type_ = Type::i; 2636 ::new (std::addressof(value_.i)) ::std::int32_t(t); 2637 return value_.i; 2638 } 2639 2640 double& set_d(double t = double()) { 2641 __fbthrift_clear(); 2642 type_ = Type::d; 2643 ::new (std::addressof(value_.d)) double(t); 2644 return value_.d; 2645 } 2646 2647 ::std::string& set_s(::std::string const &t) { 2648 __fbthrift_clear(); 2649 type_ = Type::s; 2650 ::new (std::addressof(value_.s)) ::std::string(t); 2651 return value_.s; 2652 } 2653 2654 ::std::string& set_s(::std::string&& t) { 2655 __fbthrift_clear(); 2656 type_ = Type::s; 2657 ::new (std::addressof(value_.s)) ::std::string(std::move(t)); 2658 return value_.s; 2659 } 2660 2661 template<typename... T, typename = ::apache::thrift::safe_overload_t<::std::string, T...>> ::std::string& set_s(T&&... t) { 2662 __fbthrift_clear(); 2663 type_ = Type::s; 2664 ::new (std::addressof(value_.s)) ::std::string(std::forward<T>(t)...); 2665 return value_.s; 2666 } 2667 2668 ::test_cpp2::cpp_reflection::enum1& set_e(::test_cpp2::cpp_reflection::enum1 t = ::test_cpp2::cpp_reflection::enum1()) { 2669 __fbthrift_clear(); 2670 type_ = Type::e; 2671 ::new (std::addressof(value_.e)) ::test_cpp2::cpp_reflection::enum1(t); 2672 return value_.e; 2673 } 2674 2675 ::test_cpp2::cpp_reflection::structA& set_a(::test_cpp2::cpp_reflection::structA const &t) { 2676 __fbthrift_clear(); 2677 type_ = Type::a; 2678 ::new (std::addressof(value_.a)) ::test_cpp2::cpp_reflection::structA(t); 2679 return value_.a; 2680 } 2681 2682 ::test_cpp2::cpp_reflection::structA& set_a(::test_cpp2::cpp_reflection::structA&& t) { 2683 __fbthrift_clear(); 2684 type_ = Type::a; 2685 ::new (std::addressof(value_.a)) ::test_cpp2::cpp_reflection::structA(std::move(t)); 2686 return value_.a; 2687 } 2688 2689 template<typename... T, typename = ::apache::thrift::safe_overload_t<::test_cpp2::cpp_reflection::structA, T...>> ::test_cpp2::cpp_reflection::structA& set_a(T&&... t) { 2690 __fbthrift_clear(); 2691 type_ = Type::a; 2692 ::new (std::addressof(value_.a)) ::test_cpp2::cpp_reflection::structA(std::forward<T>(t)...); 2693 return value_.a; 2694 } 2695 2696 ::std::int32_t const& get_i() const { 2697 if (type_ != Type::i) { 2698 ::apache::thrift::detail::throw_on_bad_field_access(); 2699 } 2700 return value_.i; 2701 } 2702 2703 double const& get_d() const { 2704 if (type_ != Type::d) { 2705 ::apache::thrift::detail::throw_on_bad_field_access(); 2706 } 2707 return value_.d; 2708 } 2709 2710 ::std::string const& get_s() const { 2711 if (type_ != Type::s) { 2712 ::apache::thrift::detail::throw_on_bad_field_access(); 2713 } 2714 return value_.s; 2715 } 2716 2717 ::test_cpp2::cpp_reflection::enum1 const& get_e() const { 2718 if (type_ != Type::e) { 2719 ::apache::thrift::detail::throw_on_bad_field_access(); 2720 } 2721 return value_.e; 2722 } 2723 2724 ::test_cpp2::cpp_reflection::structA const& get_a() const { 2725 if (type_ != Type::a) { 2726 ::apache::thrift::detail::throw_on_bad_field_access(); 2727 } 2728 return value_.a; 2729 } 2730 2731 ::std::int32_t& mutable_i() { 2732 assert(type_ == Type::i); 2733 return value_.i; 2734 } 2735 2736 double& mutable_d() { 2737 assert(type_ == Type::d); 2738 return value_.d; 2739 } 2740 2741 ::std::string& mutable_s() { 2742 assert(type_ == Type::s); 2743 return value_.s; 2744 } 2745 2746 ::test_cpp2::cpp_reflection::enum1& mutable_e() { 2747 assert(type_ == Type::e); 2748 return value_.e; 2749 } 2750 2751 ::test_cpp2::cpp_reflection::structA& mutable_a() { 2752 assert(type_ == Type::a); 2753 return value_.a; 2754 } 2755 2756 ::std::int32_t move_i() { 2757 assert(type_ == Type::i); 2758 return std::move(value_.i); 2759 } 2760 2761 double move_d() { 2762 assert(type_ == Type::d); 2763 return std::move(value_.d); 2764 } 2765 2766 ::std::string move_s() { 2767 assert(type_ == Type::s); 2768 return std::move(value_.s); 2769 } 2770 2771 ::test_cpp2::cpp_reflection::enum1 move_e() { 2772 assert(type_ == Type::e); 2773 return std::move(value_.e); 2774 } 2775 2776 ::test_cpp2::cpp_reflection::structA move_a() { 2777 assert(type_ == Type::a); 2778 return std::move(value_.a); 2779 } 2780 2781 template <typename..., typename T = ::std::int32_t> 2782 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> i_ref() const& { 2783 return {value_.i, type_, i, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2784 } 2785 2786 template <typename..., typename T = ::std::int32_t> 2787 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> i_ref() const&& { 2788 return {std::move(value_.i), type_, i, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2789 } 2790 2791 template <typename..., typename T = ::std::int32_t> 2792 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> i_ref() & { 2793 return {value_.i, type_, i, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2794 } 2795 2796 template <typename..., typename T = ::std::int32_t> 2797 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> i_ref() && { 2798 return {std::move(value_.i), type_, i, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2799 } 2800 template <typename..., typename T = double> 2801 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> d_ref() const& { 2802 return {value_.d, type_, d, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2803 } 2804 2805 template <typename..., typename T = double> 2806 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> d_ref() const&& { 2807 return {std::move(value_.d), type_, d, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2808 } 2809 2810 template <typename..., typename T = double> 2811 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> d_ref() & { 2812 return {value_.d, type_, d, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2813 } 2814 2815 template <typename..., typename T = double> 2816 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> d_ref() && { 2817 return {std::move(value_.d), type_, d, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2818 } 2819 template <typename..., typename T = ::std::string> 2820 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> s_ref() const& { 2821 return {value_.s, type_, s, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2822 } 2823 2824 template <typename..., typename T = ::std::string> 2825 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> s_ref() const&& { 2826 return {std::move(value_.s), type_, s, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2827 } 2828 2829 template <typename..., typename T = ::std::string> 2830 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> s_ref() & { 2831 return {value_.s, type_, s, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2832 } 2833 2834 template <typename..., typename T = ::std::string> 2835 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> s_ref() && { 2836 return {std::move(value_.s), type_, s, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2837 } 2838 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2839 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> e_ref() const& { 2840 return {value_.e, type_, e, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2841 } 2842 2843 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2844 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> e_ref() const&& { 2845 return {std::move(value_.e), type_, e, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2846 } 2847 2848 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2849 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> e_ref() & { 2850 return {value_.e, type_, e, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2851 } 2852 2853 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 2854 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> e_ref() && { 2855 return {std::move(value_.e), type_, e, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2856 } 2857 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 2858 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> a_ref() const& { 2859 return {value_.a, type_, a, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2860 } 2861 2862 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 2863 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> a_ref() const&& { 2864 return {std::move(value_.a), type_, a, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2865 } 2866 2867 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 2868 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> a_ref() & { 2869 return {value_.a, type_, a, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2870 } 2871 2872 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 2873 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> a_ref() && { 2874 return {std::move(value_.a), type_, a, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 2875 } 2876 Type getType() const { return static_cast<Type>(type_); } 2877 2878 template <class Protocol_> 2879 uint32_t read(Protocol_* iprot); 2880 template <class Protocol_> 2881 uint32_t serializedSize(Protocol_ const* prot_) const; 2882 template <class Protocol_> 2883 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 2884 template <class Protocol_> 2885 uint32_t write(Protocol_* prot_) const; 2886 protected: 2887 template <class T> 2888 void destruct(T &val) { 2889 (&val)->~T(); 2890 } 2891 2892 storage_type value_; 2893 std::underlying_type_t<Type> type_; 2894 2895 private: 2896 template <class Protocol_> 2897 void readNoXfer(Protocol_* iprot); 2898 2899 friend class ::apache::thrift::Cpp2Ops<unionA>; 2900 friend void swap(unionA& a, unionA& b); 2901 }; 2902 2903 template <class Protocol_> 2904 uint32_t unionA::read(Protocol_* iprot) { 2905 auto _xferStart = iprot->getCursorPosition(); 2906 readNoXfer(iprot); 2907 return iprot->getCursorPosition() - _xferStart; 2908 } 2909 2910 }} // test_cpp2::cpp_reflection 2911 namespace test_cpp2 { namespace cpp_reflection { 2912 class structB final { 2913 private: 2914 friend struct ::apache::thrift::detail::st::struct_private_access; 2915 2916 // used by a static_assert in the corresponding source 2917 static constexpr bool __fbthrift_cpp2_gen_json = false; 2918 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 2919 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 2920 2921 void __fbthrift_clear(); 2922 2923 public: 2924 using __fbthrift_cpp2_type = structB; 2925 static constexpr bool __fbthrift_cpp2_is_union = 2926 false; 2927 2928 2929 public: 2930 2931 structB() : 2932 __fbthrift_field_c(), 2933 __fbthrift_field_d() { 2934 } 2935 // FragileConstructor for use in initialization lists only. 2936 [[deprecated("This constructor is deprecated")]] 2937 structB(apache::thrift::FragileConstructor, double c__arg, bool d__arg); 2938 2939 structB(structB&&) = default; 2940 2941 structB(const structB&) = default; 2942 2943 2944 structB& operator=(structB&&) = default; 2945 2946 structB& operator=(const structB&) = default; 2947 private: 2948 double __fbthrift_field_c; 2949 private: 2950 bool __fbthrift_field_d; 2951 private: 2952 apache::thrift::detail::isset_bitset<2, false> __isset; 2953 2954 public: 2955 2956 bool operator==(const structB&) const; 2957 bool operator<(const structB&) const; 2958 2959 template <typename..., typename T = double> 2960 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c_ref() const& { 2961 return {this->__fbthrift_field_c, __isset.at(0), __isset.bit(0)}; 2962 } 2963 2964 template <typename..., typename T = double> 2965 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c_ref() const&& { 2966 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(0), __isset.bit(0)}; 2967 } 2968 2969 template <typename..., typename T = double> 2970 FOLLY_ERASE ::apache::thrift::field_ref<T&> c_ref() & { 2971 return {this->__fbthrift_field_c, __isset.at(0), __isset.bit(0)}; 2972 } 2973 2974 template <typename..., typename T = double> 2975 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c_ref() && { 2976 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(0), __isset.bit(0)}; 2977 } 2978 2979 template <typename..., typename T = double> 2980 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c() const& { 2981 return {this->__fbthrift_field_c, __isset.at(0), __isset.bit(0)}; 2982 } 2983 2984 template <typename..., typename T = double> 2985 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c() const&& { 2986 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(0), __isset.bit(0)}; 2987 } 2988 2989 template <typename..., typename T = double> 2990 FOLLY_ERASE ::apache::thrift::field_ref<T&> c() & { 2991 return {this->__fbthrift_field_c, __isset.at(0), __isset.bit(0)}; 2992 } 2993 2994 template <typename..., typename T = double> 2995 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c() && { 2996 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(0), __isset.bit(0)}; 2997 } 2998 2999 template <typename..., typename T = bool> 3000 FOLLY_ERASE ::apache::thrift::field_ref<const T&> d_ref() const& { 3001 return {this->__fbthrift_field_d, __isset.at(1), __isset.bit(1)}; 3002 } 3003 3004 template <typename..., typename T = bool> 3005 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> d_ref() const&& { 3006 return {static_cast<const T&&>(this->__fbthrift_field_d), __isset.at(1), __isset.bit(1)}; 3007 } 3008 3009 template <typename..., typename T = bool> 3010 FOLLY_ERASE ::apache::thrift::field_ref<T&> d_ref() & { 3011 return {this->__fbthrift_field_d, __isset.at(1), __isset.bit(1)}; 3012 } 3013 3014 template <typename..., typename T = bool> 3015 FOLLY_ERASE ::apache::thrift::field_ref<T&&> d_ref() && { 3016 return {static_cast<T&&>(this->__fbthrift_field_d), __isset.at(1), __isset.bit(1)}; 3017 } 3018 3019 template <typename..., typename T = bool> 3020 FOLLY_ERASE ::apache::thrift::field_ref<const T&> d() const& { 3021 return {this->__fbthrift_field_d, __isset.at(1), __isset.bit(1)}; 3022 } 3023 3024 template <typename..., typename T = bool> 3025 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> d() const&& { 3026 return {static_cast<const T&&>(this->__fbthrift_field_d), __isset.at(1), __isset.bit(1)}; 3027 } 3028 3029 template <typename..., typename T = bool> 3030 FOLLY_ERASE ::apache::thrift::field_ref<T&> d() & { 3031 return {this->__fbthrift_field_d, __isset.at(1), __isset.bit(1)}; 3032 } 3033 3034 template <typename..., typename T = bool> 3035 FOLLY_ERASE ::apache::thrift::field_ref<T&&> d() && { 3036 return {static_cast<T&&>(this->__fbthrift_field_d), __isset.at(1), __isset.bit(1)}; 3037 } 3038 3039 double get_c() const { 3040 return __fbthrift_field_c; 3041 } 3042 3043 [[deprecated("Use `FOO.c_ref() = BAR;` instead of `FOO.set_c(BAR);`")]] 3044 double& set_c(double c_) { 3045 c_ref() = c_; 3046 return __fbthrift_field_c; 3047 } 3048 3049 bool get_d() const { 3050 return __fbthrift_field_d; 3051 } 3052 3053 [[deprecated("Use `FOO.d_ref() = BAR;` instead of `FOO.set_d(BAR);`")]] 3054 bool& set_d(bool d_) { 3055 d_ref() = d_; 3056 return __fbthrift_field_d; 3057 } 3058 3059 template <class Protocol_> 3060 uint32_t read(Protocol_* iprot); 3061 template <class Protocol_> 3062 uint32_t serializedSize(Protocol_ const* prot_) const; 3063 template <class Protocol_> 3064 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 3065 template <class Protocol_> 3066 uint32_t write(Protocol_* prot_) const; 3067 3068 private: 3069 template <class Protocol_> 3070 void readNoXfer(Protocol_* iprot); 3071 3072 friend class ::apache::thrift::Cpp2Ops<structB>; 3073 friend void swap(structB& a, structB& b); 3074 }; 3075 3076 template <class Protocol_> 3077 uint32_t structB::read(Protocol_* iprot) { 3078 auto _xferStart = iprot->getCursorPosition(); 3079 readNoXfer(iprot); 3080 return iprot->getCursorPosition() - _xferStart; 3081 } 3082 3083 }} // test_cpp2::cpp_reflection 3084 namespace test_cpp2 { namespace cpp_reflection { 3085 class structC final { 3086 private: 3087 friend struct ::apache::thrift::detail::st::struct_private_access; 3088 3089 // used by a static_assert in the corresponding source 3090 static constexpr bool __fbthrift_cpp2_gen_json = false; 3091 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 3092 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 3093 3094 void __fbthrift_clear(); 3095 3096 public: 3097 using __fbthrift_cpp2_type = structC; 3098 static constexpr bool __fbthrift_cpp2_is_union = 3099 false; 3100 3101 3102 public: 3103 3104 structC(); 3105 3106 // FragileConstructor for use in initialization lists only. 3107 [[deprecated("This constructor is deprecated")]] 3108 structC(apache::thrift::FragileConstructor, ::std::int32_t a__arg, ::std::string b__arg, double c__arg, bool d__arg, ::test_cpp2::cpp_reflection::enum1 e__arg, ::test_cpp2::cpp_reflection::enum2 f__arg, ::test_cpp2::cpp_reflection::union1 g__arg, ::test_cpp2::cpp_reflection::unionA h__arg, ::test_cpp2::cpp_reflection::unionA i__arg, ::std::vector<::std::int32_t> j__arg, ::std::vector<::std::int32_t> j1__arg, ::std::vector<::test_cpp2::cpp_reflection::enum1> j2__arg, ::std::vector<::test_cpp2::cpp_reflection::structA> j3__arg, ::std::set<::std::int32_t> k__arg, ::std::set<::std::int32_t> k1__arg, ::std::set<::test_cpp2::cpp_reflection::enum2> k2__arg, ::std::set<::test_cpp2::cpp_reflection::structB> k3__arg, ::std::map<::std::int32_t, ::std::int32_t> l__arg, ::std::map<::std::int32_t, ::std::int32_t> l1__arg, ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1> l2__arg, ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB> l3__arg, ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t> m1__arg, ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2> m2__arg, ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB> m3__arg, ::std::map<::std::string, ::std::int32_t> n1__arg, ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1> n2__arg, ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> n3__arg, ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t> o1__arg, ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1> o2__arg, ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB> o3__arg); 3109 3110 structC(structC&&) noexcept; 3111 3112 structC(const structC& src); 3113 3114 3115 structC& operator=(structC&&) noexcept; 3116 structC& operator=(const structC& src); 3117 3118 ~structC(); 3119 3120 private: 3121 ::std::int32_t __fbthrift_field_a; 3122 private: 3123 ::std::string __fbthrift_field_b; 3124 private: 3125 double __fbthrift_field_c; 3126 private: 3127 bool __fbthrift_field_d; 3128 private: 3129 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_e; 3130 private: 3131 ::test_cpp2::cpp_reflection::enum2 __fbthrift_field_f; 3132 private: 3133 ::test_cpp2::cpp_reflection::union1 __fbthrift_field_g; 3134 private: 3135 ::test_cpp2::cpp_reflection::unionA __fbthrift_field_h; 3136 private: 3137 ::test_cpp2::cpp_reflection::unionA __fbthrift_field_i; 3138 private: 3139 ::std::vector<::std::int32_t> __fbthrift_field_j; 3140 private: 3141 ::std::vector<::std::int32_t> __fbthrift_field_j1; 3142 private: 3143 ::std::vector<::test_cpp2::cpp_reflection::enum1> __fbthrift_field_j2; 3144 private: 3145 ::std::vector<::test_cpp2::cpp_reflection::structA> __fbthrift_field_j3; 3146 private: 3147 ::std::set<::std::int32_t> __fbthrift_field_k; 3148 private: 3149 ::std::set<::std::int32_t> __fbthrift_field_k1; 3150 private: 3151 ::std::set<::test_cpp2::cpp_reflection::enum2> __fbthrift_field_k2; 3152 private: 3153 ::std::set<::test_cpp2::cpp_reflection::structB> __fbthrift_field_k3; 3154 private: 3155 ::std::map<::std::int32_t, ::std::int32_t> __fbthrift_field_l; 3156 private: 3157 ::std::map<::std::int32_t, ::std::int32_t> __fbthrift_field_l1; 3158 private: 3159 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1> __fbthrift_field_l2; 3160 private: 3161 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB> __fbthrift_field_l3; 3162 private: 3163 ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t> __fbthrift_field_m1; 3164 private: 3165 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2> __fbthrift_field_m2; 3166 private: 3167 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB> __fbthrift_field_m3; 3168 private: 3169 ::std::map<::std::string, ::std::int32_t> __fbthrift_field_n1; 3170 private: 3171 ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1> __fbthrift_field_n2; 3172 private: 3173 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> __fbthrift_field_n3; 3174 private: 3175 ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t> __fbthrift_field_o1; 3176 private: 3177 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1> __fbthrift_field_o2; 3178 private: 3179 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB> __fbthrift_field_o3; 3180 private: 3181 apache::thrift::detail::isset_bitset<30, false> __isset; 3182 3183 public: 3184 3185 bool operator==(const structC&) const; 3186 bool operator<(const structC&) const; 3187 3188 template <typename..., typename T = ::std::int32_t> 3189 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_ref() const& { 3190 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 3191 } 3192 3193 template <typename..., typename T = ::std::int32_t> 3194 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_ref() const&& { 3195 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 3196 } 3197 3198 template <typename..., typename T = ::std::int32_t> 3199 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_ref() & { 3200 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 3201 } 3202 3203 template <typename..., typename T = ::std::int32_t> 3204 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_ref() && { 3205 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 3206 } 3207 3208 template <typename..., typename T = ::std::int32_t> 3209 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a() const& { 3210 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 3211 } 3212 3213 template <typename..., typename T = ::std::int32_t> 3214 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a() const&& { 3215 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 3216 } 3217 3218 template <typename..., typename T = ::std::int32_t> 3219 FOLLY_ERASE ::apache::thrift::field_ref<T&> a() & { 3220 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 3221 } 3222 3223 template <typename..., typename T = ::std::int32_t> 3224 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a() && { 3225 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 3226 } 3227 3228 template <typename..., typename T = ::std::string> 3229 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b_ref() const& { 3230 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 3231 } 3232 3233 template <typename..., typename T = ::std::string> 3234 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b_ref() const&& { 3235 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 3236 } 3237 3238 template <typename..., typename T = ::std::string> 3239 FOLLY_ERASE ::apache::thrift::field_ref<T&> b_ref() & { 3240 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 3241 } 3242 3243 template <typename..., typename T = ::std::string> 3244 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b_ref() && { 3245 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 3246 } 3247 3248 template <typename..., typename T = ::std::string> 3249 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b() const& { 3250 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 3251 } 3252 3253 template <typename..., typename T = ::std::string> 3254 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b() const&& { 3255 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 3256 } 3257 3258 template <typename..., typename T = ::std::string> 3259 FOLLY_ERASE ::apache::thrift::field_ref<T&> b() & { 3260 return {this->__fbthrift_field_b, __isset.at(1), __isset.bit(1)}; 3261 } 3262 3263 template <typename..., typename T = ::std::string> 3264 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b() && { 3265 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(1), __isset.bit(1)}; 3266 } 3267 3268 template <typename..., typename T = double> 3269 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c_ref() const& { 3270 return {this->__fbthrift_field_c, __isset.at(2), __isset.bit(2)}; 3271 } 3272 3273 template <typename..., typename T = double> 3274 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c_ref() const&& { 3275 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(2), __isset.bit(2)}; 3276 } 3277 3278 template <typename..., typename T = double> 3279 FOLLY_ERASE ::apache::thrift::field_ref<T&> c_ref() & { 3280 return {this->__fbthrift_field_c, __isset.at(2), __isset.bit(2)}; 3281 } 3282 3283 template <typename..., typename T = double> 3284 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c_ref() && { 3285 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(2), __isset.bit(2)}; 3286 } 3287 3288 template <typename..., typename T = double> 3289 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c() const& { 3290 return {this->__fbthrift_field_c, __isset.at(2), __isset.bit(2)}; 3291 } 3292 3293 template <typename..., typename T = double> 3294 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c() const&& { 3295 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(2), __isset.bit(2)}; 3296 } 3297 3298 template <typename..., typename T = double> 3299 FOLLY_ERASE ::apache::thrift::field_ref<T&> c() & { 3300 return {this->__fbthrift_field_c, __isset.at(2), __isset.bit(2)}; 3301 } 3302 3303 template <typename..., typename T = double> 3304 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c() && { 3305 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(2), __isset.bit(2)}; 3306 } 3307 3308 template <typename..., typename T = bool> 3309 FOLLY_ERASE ::apache::thrift::field_ref<const T&> d_ref() const& { 3310 return {this->__fbthrift_field_d, __isset.at(3), __isset.bit(3)}; 3311 } 3312 3313 template <typename..., typename T = bool> 3314 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> d_ref() const&& { 3315 return {static_cast<const T&&>(this->__fbthrift_field_d), __isset.at(3), __isset.bit(3)}; 3316 } 3317 3318 template <typename..., typename T = bool> 3319 FOLLY_ERASE ::apache::thrift::field_ref<T&> d_ref() & { 3320 return {this->__fbthrift_field_d, __isset.at(3), __isset.bit(3)}; 3321 } 3322 3323 template <typename..., typename T = bool> 3324 FOLLY_ERASE ::apache::thrift::field_ref<T&&> d_ref() && { 3325 return {static_cast<T&&>(this->__fbthrift_field_d), __isset.at(3), __isset.bit(3)}; 3326 } 3327 3328 template <typename..., typename T = bool> 3329 FOLLY_ERASE ::apache::thrift::field_ref<const T&> d() const& { 3330 return {this->__fbthrift_field_d, __isset.at(3), __isset.bit(3)}; 3331 } 3332 3333 template <typename..., typename T = bool> 3334 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> d() const&& { 3335 return {static_cast<const T&&>(this->__fbthrift_field_d), __isset.at(3), __isset.bit(3)}; 3336 } 3337 3338 template <typename..., typename T = bool> 3339 FOLLY_ERASE ::apache::thrift::field_ref<T&> d() & { 3340 return {this->__fbthrift_field_d, __isset.at(3), __isset.bit(3)}; 3341 } 3342 3343 template <typename..., typename T = bool> 3344 FOLLY_ERASE ::apache::thrift::field_ref<T&&> d() && { 3345 return {static_cast<T&&>(this->__fbthrift_field_d), __isset.at(3), __isset.bit(3)}; 3346 } 3347 3348 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3349 FOLLY_ERASE ::apache::thrift::field_ref<const T&> e_ref() const& { 3350 return {this->__fbthrift_field_e, __isset.at(4), __isset.bit(4)}; 3351 } 3352 3353 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3354 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> e_ref() const&& { 3355 return {static_cast<const T&&>(this->__fbthrift_field_e), __isset.at(4), __isset.bit(4)}; 3356 } 3357 3358 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3359 FOLLY_ERASE ::apache::thrift::field_ref<T&> e_ref() & { 3360 return {this->__fbthrift_field_e, __isset.at(4), __isset.bit(4)}; 3361 } 3362 3363 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3364 FOLLY_ERASE ::apache::thrift::field_ref<T&&> e_ref() && { 3365 return {static_cast<T&&>(this->__fbthrift_field_e), __isset.at(4), __isset.bit(4)}; 3366 } 3367 3368 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3369 FOLLY_ERASE ::apache::thrift::field_ref<const T&> e() const& { 3370 return {this->__fbthrift_field_e, __isset.at(4), __isset.bit(4)}; 3371 } 3372 3373 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3374 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> e() const&& { 3375 return {static_cast<const T&&>(this->__fbthrift_field_e), __isset.at(4), __isset.bit(4)}; 3376 } 3377 3378 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3379 FOLLY_ERASE ::apache::thrift::field_ref<T&> e() & { 3380 return {this->__fbthrift_field_e, __isset.at(4), __isset.bit(4)}; 3381 } 3382 3383 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 3384 FOLLY_ERASE ::apache::thrift::field_ref<T&&> e() && { 3385 return {static_cast<T&&>(this->__fbthrift_field_e), __isset.at(4), __isset.bit(4)}; 3386 } 3387 3388 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3389 FOLLY_ERASE ::apache::thrift::field_ref<const T&> f_ref() const& { 3390 return {this->__fbthrift_field_f, __isset.at(5), __isset.bit(5)}; 3391 } 3392 3393 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3394 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> f_ref() const&& { 3395 return {static_cast<const T&&>(this->__fbthrift_field_f), __isset.at(5), __isset.bit(5)}; 3396 } 3397 3398 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3399 FOLLY_ERASE ::apache::thrift::field_ref<T&> f_ref() & { 3400 return {this->__fbthrift_field_f, __isset.at(5), __isset.bit(5)}; 3401 } 3402 3403 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3404 FOLLY_ERASE ::apache::thrift::field_ref<T&&> f_ref() && { 3405 return {static_cast<T&&>(this->__fbthrift_field_f), __isset.at(5), __isset.bit(5)}; 3406 } 3407 3408 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3409 FOLLY_ERASE ::apache::thrift::field_ref<const T&> f() const& { 3410 return {this->__fbthrift_field_f, __isset.at(5), __isset.bit(5)}; 3411 } 3412 3413 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3414 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> f() const&& { 3415 return {static_cast<const T&&>(this->__fbthrift_field_f), __isset.at(5), __isset.bit(5)}; 3416 } 3417 3418 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3419 FOLLY_ERASE ::apache::thrift::field_ref<T&> f() & { 3420 return {this->__fbthrift_field_f, __isset.at(5), __isset.bit(5)}; 3421 } 3422 3423 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 3424 FOLLY_ERASE ::apache::thrift::field_ref<T&&> f() && { 3425 return {static_cast<T&&>(this->__fbthrift_field_f), __isset.at(5), __isset.bit(5)}; 3426 } 3427 3428 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3429 FOLLY_ERASE ::apache::thrift::field_ref<const T&> g_ref() const& { 3430 return {this->__fbthrift_field_g, __isset.at(6), __isset.bit(6)}; 3431 } 3432 3433 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3434 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> g_ref() const&& { 3435 return {static_cast<const T&&>(this->__fbthrift_field_g), __isset.at(6), __isset.bit(6)}; 3436 } 3437 3438 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3439 FOLLY_ERASE ::apache::thrift::field_ref<T&> g_ref() & { 3440 return {this->__fbthrift_field_g, __isset.at(6), __isset.bit(6)}; 3441 } 3442 3443 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3444 FOLLY_ERASE ::apache::thrift::field_ref<T&&> g_ref() && { 3445 return {static_cast<T&&>(this->__fbthrift_field_g), __isset.at(6), __isset.bit(6)}; 3446 } 3447 3448 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3449 FOLLY_ERASE ::apache::thrift::field_ref<const T&> g() const& { 3450 return {this->__fbthrift_field_g, __isset.at(6), __isset.bit(6)}; 3451 } 3452 3453 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3454 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> g() const&& { 3455 return {static_cast<const T&&>(this->__fbthrift_field_g), __isset.at(6), __isset.bit(6)}; 3456 } 3457 3458 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3459 FOLLY_ERASE ::apache::thrift::field_ref<T&> g() & { 3460 return {this->__fbthrift_field_g, __isset.at(6), __isset.bit(6)}; 3461 } 3462 3463 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 3464 FOLLY_ERASE ::apache::thrift::field_ref<T&&> g() && { 3465 return {static_cast<T&&>(this->__fbthrift_field_g), __isset.at(6), __isset.bit(6)}; 3466 } 3467 3468 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3469 FOLLY_ERASE ::apache::thrift::field_ref<const T&> h_ref() const& { 3470 return {this->__fbthrift_field_h, __isset.at(7), __isset.bit(7)}; 3471 } 3472 3473 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3474 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> h_ref() const&& { 3475 return {static_cast<const T&&>(this->__fbthrift_field_h), __isset.at(7), __isset.bit(7)}; 3476 } 3477 3478 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3479 FOLLY_ERASE ::apache::thrift::field_ref<T&> h_ref() & { 3480 return {this->__fbthrift_field_h, __isset.at(7), __isset.bit(7)}; 3481 } 3482 3483 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3484 FOLLY_ERASE ::apache::thrift::field_ref<T&&> h_ref() && { 3485 return {static_cast<T&&>(this->__fbthrift_field_h), __isset.at(7), __isset.bit(7)}; 3486 } 3487 3488 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3489 FOLLY_ERASE ::apache::thrift::field_ref<const T&> h() const& { 3490 return {this->__fbthrift_field_h, __isset.at(7), __isset.bit(7)}; 3491 } 3492 3493 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3494 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> h() const&& { 3495 return {static_cast<const T&&>(this->__fbthrift_field_h), __isset.at(7), __isset.bit(7)}; 3496 } 3497 3498 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3499 FOLLY_ERASE ::apache::thrift::field_ref<T&> h() & { 3500 return {this->__fbthrift_field_h, __isset.at(7), __isset.bit(7)}; 3501 } 3502 3503 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3504 FOLLY_ERASE ::apache::thrift::field_ref<T&&> h() && { 3505 return {static_cast<T&&>(this->__fbthrift_field_h), __isset.at(7), __isset.bit(7)}; 3506 } 3507 3508 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3509 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i_ref() const& { 3510 return {this->__fbthrift_field_i, __isset.at(8), __isset.bit(8)}; 3511 } 3512 3513 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3514 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i_ref() const&& { 3515 return {static_cast<const T&&>(this->__fbthrift_field_i), __isset.at(8), __isset.bit(8)}; 3516 } 3517 3518 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3519 FOLLY_ERASE ::apache::thrift::field_ref<T&> i_ref() & { 3520 return {this->__fbthrift_field_i, __isset.at(8), __isset.bit(8)}; 3521 } 3522 3523 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3524 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i_ref() && { 3525 return {static_cast<T&&>(this->__fbthrift_field_i), __isset.at(8), __isset.bit(8)}; 3526 } 3527 3528 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3529 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i() const& { 3530 return {this->__fbthrift_field_i, __isset.at(8), __isset.bit(8)}; 3531 } 3532 3533 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3534 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i() const&& { 3535 return {static_cast<const T&&>(this->__fbthrift_field_i), __isset.at(8), __isset.bit(8)}; 3536 } 3537 3538 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3539 FOLLY_ERASE ::apache::thrift::field_ref<T&> i() & { 3540 return {this->__fbthrift_field_i, __isset.at(8), __isset.bit(8)}; 3541 } 3542 3543 template <typename..., typename T = ::test_cpp2::cpp_reflection::unionA> 3544 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i() && { 3545 return {static_cast<T&&>(this->__fbthrift_field_i), __isset.at(8), __isset.bit(8)}; 3546 } 3547 3548 template <typename..., typename T = ::std::vector<::std::int32_t>> 3549 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j_ref() const& { 3550 return {this->__fbthrift_field_j, __isset.at(9), __isset.bit(9)}; 3551 } 3552 3553 template <typename..., typename T = ::std::vector<::std::int32_t>> 3554 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j_ref() const&& { 3555 return {static_cast<const T&&>(this->__fbthrift_field_j), __isset.at(9), __isset.bit(9)}; 3556 } 3557 3558 template <typename..., typename T = ::std::vector<::std::int32_t>> 3559 FOLLY_ERASE ::apache::thrift::field_ref<T&> j_ref() & { 3560 return {this->__fbthrift_field_j, __isset.at(9), __isset.bit(9)}; 3561 } 3562 3563 template <typename..., typename T = ::std::vector<::std::int32_t>> 3564 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j_ref() && { 3565 return {static_cast<T&&>(this->__fbthrift_field_j), __isset.at(9), __isset.bit(9)}; 3566 } 3567 3568 template <typename..., typename T = ::std::vector<::std::int32_t>> 3569 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j() const& { 3570 return {this->__fbthrift_field_j, __isset.at(9), __isset.bit(9)}; 3571 } 3572 3573 template <typename..., typename T = ::std::vector<::std::int32_t>> 3574 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j() const&& { 3575 return {static_cast<const T&&>(this->__fbthrift_field_j), __isset.at(9), __isset.bit(9)}; 3576 } 3577 3578 template <typename..., typename T = ::std::vector<::std::int32_t>> 3579 FOLLY_ERASE ::apache::thrift::field_ref<T&> j() & { 3580 return {this->__fbthrift_field_j, __isset.at(9), __isset.bit(9)}; 3581 } 3582 3583 template <typename..., typename T = ::std::vector<::std::int32_t>> 3584 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j() && { 3585 return {static_cast<T&&>(this->__fbthrift_field_j), __isset.at(9), __isset.bit(9)}; 3586 } 3587 3588 template <typename..., typename T = ::std::vector<::std::int32_t>> 3589 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j1_ref() const& { 3590 return {this->__fbthrift_field_j1, __isset.at(10), __isset.bit(10)}; 3591 } 3592 3593 template <typename..., typename T = ::std::vector<::std::int32_t>> 3594 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j1_ref() const&& { 3595 return {static_cast<const T&&>(this->__fbthrift_field_j1), __isset.at(10), __isset.bit(10)}; 3596 } 3597 3598 template <typename..., typename T = ::std::vector<::std::int32_t>> 3599 FOLLY_ERASE ::apache::thrift::field_ref<T&> j1_ref() & { 3600 return {this->__fbthrift_field_j1, __isset.at(10), __isset.bit(10)}; 3601 } 3602 3603 template <typename..., typename T = ::std::vector<::std::int32_t>> 3604 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j1_ref() && { 3605 return {static_cast<T&&>(this->__fbthrift_field_j1), __isset.at(10), __isset.bit(10)}; 3606 } 3607 3608 template <typename..., typename T = ::std::vector<::std::int32_t>> 3609 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j1() const& { 3610 return {this->__fbthrift_field_j1, __isset.at(10), __isset.bit(10)}; 3611 } 3612 3613 template <typename..., typename T = ::std::vector<::std::int32_t>> 3614 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j1() const&& { 3615 return {static_cast<const T&&>(this->__fbthrift_field_j1), __isset.at(10), __isset.bit(10)}; 3616 } 3617 3618 template <typename..., typename T = ::std::vector<::std::int32_t>> 3619 FOLLY_ERASE ::apache::thrift::field_ref<T&> j1() & { 3620 return {this->__fbthrift_field_j1, __isset.at(10), __isset.bit(10)}; 3621 } 3622 3623 template <typename..., typename T = ::std::vector<::std::int32_t>> 3624 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j1() && { 3625 return {static_cast<T&&>(this->__fbthrift_field_j1), __isset.at(10), __isset.bit(10)}; 3626 } 3627 3628 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3629 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j2_ref() const& { 3630 return {this->__fbthrift_field_j2, __isset.at(11), __isset.bit(11)}; 3631 } 3632 3633 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3634 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j2_ref() const&& { 3635 return {static_cast<const T&&>(this->__fbthrift_field_j2), __isset.at(11), __isset.bit(11)}; 3636 } 3637 3638 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3639 FOLLY_ERASE ::apache::thrift::field_ref<T&> j2_ref() & { 3640 return {this->__fbthrift_field_j2, __isset.at(11), __isset.bit(11)}; 3641 } 3642 3643 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3644 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j2_ref() && { 3645 return {static_cast<T&&>(this->__fbthrift_field_j2), __isset.at(11), __isset.bit(11)}; 3646 } 3647 3648 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3649 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j2() const& { 3650 return {this->__fbthrift_field_j2, __isset.at(11), __isset.bit(11)}; 3651 } 3652 3653 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3654 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j2() const&& { 3655 return {static_cast<const T&&>(this->__fbthrift_field_j2), __isset.at(11), __isset.bit(11)}; 3656 } 3657 3658 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3659 FOLLY_ERASE ::apache::thrift::field_ref<T&> j2() & { 3660 return {this->__fbthrift_field_j2, __isset.at(11), __isset.bit(11)}; 3661 } 3662 3663 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 3664 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j2() && { 3665 return {static_cast<T&&>(this->__fbthrift_field_j2), __isset.at(11), __isset.bit(11)}; 3666 } 3667 3668 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3669 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j3_ref() const& { 3670 return {this->__fbthrift_field_j3, __isset.at(12), __isset.bit(12)}; 3671 } 3672 3673 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3674 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j3_ref() const&& { 3675 return {static_cast<const T&&>(this->__fbthrift_field_j3), __isset.at(12), __isset.bit(12)}; 3676 } 3677 3678 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3679 FOLLY_ERASE ::apache::thrift::field_ref<T&> j3_ref() & { 3680 return {this->__fbthrift_field_j3, __isset.at(12), __isset.bit(12)}; 3681 } 3682 3683 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3684 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j3_ref() && { 3685 return {static_cast<T&&>(this->__fbthrift_field_j3), __isset.at(12), __isset.bit(12)}; 3686 } 3687 3688 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3689 FOLLY_ERASE ::apache::thrift::field_ref<const T&> j3() const& { 3690 return {this->__fbthrift_field_j3, __isset.at(12), __isset.bit(12)}; 3691 } 3692 3693 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3694 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> j3() const&& { 3695 return {static_cast<const T&&>(this->__fbthrift_field_j3), __isset.at(12), __isset.bit(12)}; 3696 } 3697 3698 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3699 FOLLY_ERASE ::apache::thrift::field_ref<T&> j3() & { 3700 return {this->__fbthrift_field_j3, __isset.at(12), __isset.bit(12)}; 3701 } 3702 3703 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 3704 FOLLY_ERASE ::apache::thrift::field_ref<T&&> j3() && { 3705 return {static_cast<T&&>(this->__fbthrift_field_j3), __isset.at(12), __isset.bit(12)}; 3706 } 3707 3708 template <typename..., typename T = ::std::set<::std::int32_t>> 3709 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k_ref() const& { 3710 return {this->__fbthrift_field_k, __isset.at(13), __isset.bit(13)}; 3711 } 3712 3713 template <typename..., typename T = ::std::set<::std::int32_t>> 3714 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k_ref() const&& { 3715 return {static_cast<const T&&>(this->__fbthrift_field_k), __isset.at(13), __isset.bit(13)}; 3716 } 3717 3718 template <typename..., typename T = ::std::set<::std::int32_t>> 3719 FOLLY_ERASE ::apache::thrift::field_ref<T&> k_ref() & { 3720 return {this->__fbthrift_field_k, __isset.at(13), __isset.bit(13)}; 3721 } 3722 3723 template <typename..., typename T = ::std::set<::std::int32_t>> 3724 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k_ref() && { 3725 return {static_cast<T&&>(this->__fbthrift_field_k), __isset.at(13), __isset.bit(13)}; 3726 } 3727 3728 template <typename..., typename T = ::std::set<::std::int32_t>> 3729 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k() const& { 3730 return {this->__fbthrift_field_k, __isset.at(13), __isset.bit(13)}; 3731 } 3732 3733 template <typename..., typename T = ::std::set<::std::int32_t>> 3734 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k() const&& { 3735 return {static_cast<const T&&>(this->__fbthrift_field_k), __isset.at(13), __isset.bit(13)}; 3736 } 3737 3738 template <typename..., typename T = ::std::set<::std::int32_t>> 3739 FOLLY_ERASE ::apache::thrift::field_ref<T&> k() & { 3740 return {this->__fbthrift_field_k, __isset.at(13), __isset.bit(13)}; 3741 } 3742 3743 template <typename..., typename T = ::std::set<::std::int32_t>> 3744 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k() && { 3745 return {static_cast<T&&>(this->__fbthrift_field_k), __isset.at(13), __isset.bit(13)}; 3746 } 3747 3748 template <typename..., typename T = ::std::set<::std::int32_t>> 3749 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k1_ref() const& { 3750 return {this->__fbthrift_field_k1, __isset.at(14), __isset.bit(14)}; 3751 } 3752 3753 template <typename..., typename T = ::std::set<::std::int32_t>> 3754 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k1_ref() const&& { 3755 return {static_cast<const T&&>(this->__fbthrift_field_k1), __isset.at(14), __isset.bit(14)}; 3756 } 3757 3758 template <typename..., typename T = ::std::set<::std::int32_t>> 3759 FOLLY_ERASE ::apache::thrift::field_ref<T&> k1_ref() & { 3760 return {this->__fbthrift_field_k1, __isset.at(14), __isset.bit(14)}; 3761 } 3762 3763 template <typename..., typename T = ::std::set<::std::int32_t>> 3764 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k1_ref() && { 3765 return {static_cast<T&&>(this->__fbthrift_field_k1), __isset.at(14), __isset.bit(14)}; 3766 } 3767 3768 template <typename..., typename T = ::std::set<::std::int32_t>> 3769 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k1() const& { 3770 return {this->__fbthrift_field_k1, __isset.at(14), __isset.bit(14)}; 3771 } 3772 3773 template <typename..., typename T = ::std::set<::std::int32_t>> 3774 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k1() const&& { 3775 return {static_cast<const T&&>(this->__fbthrift_field_k1), __isset.at(14), __isset.bit(14)}; 3776 } 3777 3778 template <typename..., typename T = ::std::set<::std::int32_t>> 3779 FOLLY_ERASE ::apache::thrift::field_ref<T&> k1() & { 3780 return {this->__fbthrift_field_k1, __isset.at(14), __isset.bit(14)}; 3781 } 3782 3783 template <typename..., typename T = ::std::set<::std::int32_t>> 3784 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k1() && { 3785 return {static_cast<T&&>(this->__fbthrift_field_k1), __isset.at(14), __isset.bit(14)}; 3786 } 3787 3788 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3789 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k2_ref() const& { 3790 return {this->__fbthrift_field_k2, __isset.at(15), __isset.bit(15)}; 3791 } 3792 3793 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3794 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k2_ref() const&& { 3795 return {static_cast<const T&&>(this->__fbthrift_field_k2), __isset.at(15), __isset.bit(15)}; 3796 } 3797 3798 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3799 FOLLY_ERASE ::apache::thrift::field_ref<T&> k2_ref() & { 3800 return {this->__fbthrift_field_k2, __isset.at(15), __isset.bit(15)}; 3801 } 3802 3803 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3804 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k2_ref() && { 3805 return {static_cast<T&&>(this->__fbthrift_field_k2), __isset.at(15), __isset.bit(15)}; 3806 } 3807 3808 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3809 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k2() const& { 3810 return {this->__fbthrift_field_k2, __isset.at(15), __isset.bit(15)}; 3811 } 3812 3813 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3814 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k2() const&& { 3815 return {static_cast<const T&&>(this->__fbthrift_field_k2), __isset.at(15), __isset.bit(15)}; 3816 } 3817 3818 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3819 FOLLY_ERASE ::apache::thrift::field_ref<T&> k2() & { 3820 return {this->__fbthrift_field_k2, __isset.at(15), __isset.bit(15)}; 3821 } 3822 3823 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::enum2>> 3824 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k2() && { 3825 return {static_cast<T&&>(this->__fbthrift_field_k2), __isset.at(15), __isset.bit(15)}; 3826 } 3827 3828 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3829 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k3_ref() const& { 3830 return {this->__fbthrift_field_k3, __isset.at(16), __isset.bit(16)}; 3831 } 3832 3833 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3834 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k3_ref() const&& { 3835 return {static_cast<const T&&>(this->__fbthrift_field_k3), __isset.at(16), __isset.bit(16)}; 3836 } 3837 3838 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3839 FOLLY_ERASE ::apache::thrift::field_ref<T&> k3_ref() & { 3840 return {this->__fbthrift_field_k3, __isset.at(16), __isset.bit(16)}; 3841 } 3842 3843 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3844 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k3_ref() && { 3845 return {static_cast<T&&>(this->__fbthrift_field_k3), __isset.at(16), __isset.bit(16)}; 3846 } 3847 3848 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3849 FOLLY_ERASE ::apache::thrift::field_ref<const T&> k3() const& { 3850 return {this->__fbthrift_field_k3, __isset.at(16), __isset.bit(16)}; 3851 } 3852 3853 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3854 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> k3() const&& { 3855 return {static_cast<const T&&>(this->__fbthrift_field_k3), __isset.at(16), __isset.bit(16)}; 3856 } 3857 3858 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3859 FOLLY_ERASE ::apache::thrift::field_ref<T&> k3() & { 3860 return {this->__fbthrift_field_k3, __isset.at(16), __isset.bit(16)}; 3861 } 3862 3863 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 3864 FOLLY_ERASE ::apache::thrift::field_ref<T&&> k3() && { 3865 return {static_cast<T&&>(this->__fbthrift_field_k3), __isset.at(16), __isset.bit(16)}; 3866 } 3867 3868 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3869 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l_ref() const& { 3870 return {this->__fbthrift_field_l, __isset.at(17), __isset.bit(17)}; 3871 } 3872 3873 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3874 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l_ref() const&& { 3875 return {static_cast<const T&&>(this->__fbthrift_field_l), __isset.at(17), __isset.bit(17)}; 3876 } 3877 3878 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3879 FOLLY_ERASE ::apache::thrift::field_ref<T&> l_ref() & { 3880 return {this->__fbthrift_field_l, __isset.at(17), __isset.bit(17)}; 3881 } 3882 3883 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3884 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l_ref() && { 3885 return {static_cast<T&&>(this->__fbthrift_field_l), __isset.at(17), __isset.bit(17)}; 3886 } 3887 3888 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3889 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l() const& { 3890 return {this->__fbthrift_field_l, __isset.at(17), __isset.bit(17)}; 3891 } 3892 3893 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3894 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l() const&& { 3895 return {static_cast<const T&&>(this->__fbthrift_field_l), __isset.at(17), __isset.bit(17)}; 3896 } 3897 3898 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3899 FOLLY_ERASE ::apache::thrift::field_ref<T&> l() & { 3900 return {this->__fbthrift_field_l, __isset.at(17), __isset.bit(17)}; 3901 } 3902 3903 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3904 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l() && { 3905 return {static_cast<T&&>(this->__fbthrift_field_l), __isset.at(17), __isset.bit(17)}; 3906 } 3907 3908 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3909 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l1_ref() const& { 3910 return {this->__fbthrift_field_l1, __isset.at(18), __isset.bit(18)}; 3911 } 3912 3913 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3914 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l1_ref() const&& { 3915 return {static_cast<const T&&>(this->__fbthrift_field_l1), __isset.at(18), __isset.bit(18)}; 3916 } 3917 3918 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3919 FOLLY_ERASE ::apache::thrift::field_ref<T&> l1_ref() & { 3920 return {this->__fbthrift_field_l1, __isset.at(18), __isset.bit(18)}; 3921 } 3922 3923 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3924 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l1_ref() && { 3925 return {static_cast<T&&>(this->__fbthrift_field_l1), __isset.at(18), __isset.bit(18)}; 3926 } 3927 3928 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3929 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l1() const& { 3930 return {this->__fbthrift_field_l1, __isset.at(18), __isset.bit(18)}; 3931 } 3932 3933 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3934 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l1() const&& { 3935 return {static_cast<const T&&>(this->__fbthrift_field_l1), __isset.at(18), __isset.bit(18)}; 3936 } 3937 3938 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3939 FOLLY_ERASE ::apache::thrift::field_ref<T&> l1() & { 3940 return {this->__fbthrift_field_l1, __isset.at(18), __isset.bit(18)}; 3941 } 3942 3943 template <typename..., typename T = ::std::map<::std::int32_t, ::std::int32_t>> 3944 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l1() && { 3945 return {static_cast<T&&>(this->__fbthrift_field_l1), __isset.at(18), __isset.bit(18)}; 3946 } 3947 3948 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3949 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l2_ref() const& { 3950 return {this->__fbthrift_field_l2, __isset.at(19), __isset.bit(19)}; 3951 } 3952 3953 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3954 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l2_ref() const&& { 3955 return {static_cast<const T&&>(this->__fbthrift_field_l2), __isset.at(19), __isset.bit(19)}; 3956 } 3957 3958 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3959 FOLLY_ERASE ::apache::thrift::field_ref<T&> l2_ref() & { 3960 return {this->__fbthrift_field_l2, __isset.at(19), __isset.bit(19)}; 3961 } 3962 3963 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3964 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l2_ref() && { 3965 return {static_cast<T&&>(this->__fbthrift_field_l2), __isset.at(19), __isset.bit(19)}; 3966 } 3967 3968 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3969 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l2() const& { 3970 return {this->__fbthrift_field_l2, __isset.at(19), __isset.bit(19)}; 3971 } 3972 3973 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3974 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l2() const&& { 3975 return {static_cast<const T&&>(this->__fbthrift_field_l2), __isset.at(19), __isset.bit(19)}; 3976 } 3977 3978 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3979 FOLLY_ERASE ::apache::thrift::field_ref<T&> l2() & { 3980 return {this->__fbthrift_field_l2, __isset.at(19), __isset.bit(19)}; 3981 } 3982 3983 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 3984 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l2() && { 3985 return {static_cast<T&&>(this->__fbthrift_field_l2), __isset.at(19), __isset.bit(19)}; 3986 } 3987 3988 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 3989 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l3_ref() const& { 3990 return {this->__fbthrift_field_l3, __isset.at(20), __isset.bit(20)}; 3991 } 3992 3993 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 3994 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l3_ref() const&& { 3995 return {static_cast<const T&&>(this->__fbthrift_field_l3), __isset.at(20), __isset.bit(20)}; 3996 } 3997 3998 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 3999 FOLLY_ERASE ::apache::thrift::field_ref<T&> l3_ref() & { 4000 return {this->__fbthrift_field_l3, __isset.at(20), __isset.bit(20)}; 4001 } 4002 4003 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4004 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l3_ref() && { 4005 return {static_cast<T&&>(this->__fbthrift_field_l3), __isset.at(20), __isset.bit(20)}; 4006 } 4007 4008 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4009 FOLLY_ERASE ::apache::thrift::field_ref<const T&> l3() const& { 4010 return {this->__fbthrift_field_l3, __isset.at(20), __isset.bit(20)}; 4011 } 4012 4013 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4014 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> l3() const&& { 4015 return {static_cast<const T&&>(this->__fbthrift_field_l3), __isset.at(20), __isset.bit(20)}; 4016 } 4017 4018 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4019 FOLLY_ERASE ::apache::thrift::field_ref<T&> l3() & { 4020 return {this->__fbthrift_field_l3, __isset.at(20), __isset.bit(20)}; 4021 } 4022 4023 template <typename..., typename T = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4024 FOLLY_ERASE ::apache::thrift::field_ref<T&&> l3() && { 4025 return {static_cast<T&&>(this->__fbthrift_field_l3), __isset.at(20), __isset.bit(20)}; 4026 } 4027 4028 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4029 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m1_ref() const& { 4030 return {this->__fbthrift_field_m1, __isset.at(21), __isset.bit(21)}; 4031 } 4032 4033 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4034 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m1_ref() const&& { 4035 return {static_cast<const T&&>(this->__fbthrift_field_m1), __isset.at(21), __isset.bit(21)}; 4036 } 4037 4038 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4039 FOLLY_ERASE ::apache::thrift::field_ref<T&> m1_ref() & { 4040 return {this->__fbthrift_field_m1, __isset.at(21), __isset.bit(21)}; 4041 } 4042 4043 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4044 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m1_ref() && { 4045 return {static_cast<T&&>(this->__fbthrift_field_m1), __isset.at(21), __isset.bit(21)}; 4046 } 4047 4048 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4049 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m1() const& { 4050 return {this->__fbthrift_field_m1, __isset.at(21), __isset.bit(21)}; 4051 } 4052 4053 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4054 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m1() const&& { 4055 return {static_cast<const T&&>(this->__fbthrift_field_m1), __isset.at(21), __isset.bit(21)}; 4056 } 4057 4058 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4059 FOLLY_ERASE ::apache::thrift::field_ref<T&> m1() & { 4060 return {this->__fbthrift_field_m1, __isset.at(21), __isset.bit(21)}; 4061 } 4062 4063 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4064 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m1() && { 4065 return {static_cast<T&&>(this->__fbthrift_field_m1), __isset.at(21), __isset.bit(21)}; 4066 } 4067 4068 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4069 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m2_ref() const& { 4070 return {this->__fbthrift_field_m2, __isset.at(22), __isset.bit(22)}; 4071 } 4072 4073 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4074 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m2_ref() const&& { 4075 return {static_cast<const T&&>(this->__fbthrift_field_m2), __isset.at(22), __isset.bit(22)}; 4076 } 4077 4078 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4079 FOLLY_ERASE ::apache::thrift::field_ref<T&> m2_ref() & { 4080 return {this->__fbthrift_field_m2, __isset.at(22), __isset.bit(22)}; 4081 } 4082 4083 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4084 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m2_ref() && { 4085 return {static_cast<T&&>(this->__fbthrift_field_m2), __isset.at(22), __isset.bit(22)}; 4086 } 4087 4088 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4089 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m2() const& { 4090 return {this->__fbthrift_field_m2, __isset.at(22), __isset.bit(22)}; 4091 } 4092 4093 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4094 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m2() const&& { 4095 return {static_cast<const T&&>(this->__fbthrift_field_m2), __isset.at(22), __isset.bit(22)}; 4096 } 4097 4098 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4099 FOLLY_ERASE ::apache::thrift::field_ref<T&> m2() & { 4100 return {this->__fbthrift_field_m2, __isset.at(22), __isset.bit(22)}; 4101 } 4102 4103 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4104 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m2() && { 4105 return {static_cast<T&&>(this->__fbthrift_field_m2), __isset.at(22), __isset.bit(22)}; 4106 } 4107 4108 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4109 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m3_ref() const& { 4110 return {this->__fbthrift_field_m3, __isset.at(23), __isset.bit(23)}; 4111 } 4112 4113 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4114 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m3_ref() const&& { 4115 return {static_cast<const T&&>(this->__fbthrift_field_m3), __isset.at(23), __isset.bit(23)}; 4116 } 4117 4118 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4119 FOLLY_ERASE ::apache::thrift::field_ref<T&> m3_ref() & { 4120 return {this->__fbthrift_field_m3, __isset.at(23), __isset.bit(23)}; 4121 } 4122 4123 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4124 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m3_ref() && { 4125 return {static_cast<T&&>(this->__fbthrift_field_m3), __isset.at(23), __isset.bit(23)}; 4126 } 4127 4128 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4129 FOLLY_ERASE ::apache::thrift::field_ref<const T&> m3() const& { 4130 return {this->__fbthrift_field_m3, __isset.at(23), __isset.bit(23)}; 4131 } 4132 4133 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4134 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> m3() const&& { 4135 return {static_cast<const T&&>(this->__fbthrift_field_m3), __isset.at(23), __isset.bit(23)}; 4136 } 4137 4138 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4139 FOLLY_ERASE ::apache::thrift::field_ref<T&> m3() & { 4140 return {this->__fbthrift_field_m3, __isset.at(23), __isset.bit(23)}; 4141 } 4142 4143 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4144 FOLLY_ERASE ::apache::thrift::field_ref<T&&> m3() && { 4145 return {static_cast<T&&>(this->__fbthrift_field_m3), __isset.at(23), __isset.bit(23)}; 4146 } 4147 4148 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4149 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n1_ref() const& { 4150 return {this->__fbthrift_field_n1, __isset.at(24), __isset.bit(24)}; 4151 } 4152 4153 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4154 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n1_ref() const&& { 4155 return {static_cast<const T&&>(this->__fbthrift_field_n1), __isset.at(24), __isset.bit(24)}; 4156 } 4157 4158 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4159 FOLLY_ERASE ::apache::thrift::field_ref<T&> n1_ref() & { 4160 return {this->__fbthrift_field_n1, __isset.at(24), __isset.bit(24)}; 4161 } 4162 4163 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4164 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n1_ref() && { 4165 return {static_cast<T&&>(this->__fbthrift_field_n1), __isset.at(24), __isset.bit(24)}; 4166 } 4167 4168 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4169 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n1() const& { 4170 return {this->__fbthrift_field_n1, __isset.at(24), __isset.bit(24)}; 4171 } 4172 4173 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4174 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n1() const&& { 4175 return {static_cast<const T&&>(this->__fbthrift_field_n1), __isset.at(24), __isset.bit(24)}; 4176 } 4177 4178 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4179 FOLLY_ERASE ::apache::thrift::field_ref<T&> n1() & { 4180 return {this->__fbthrift_field_n1, __isset.at(24), __isset.bit(24)}; 4181 } 4182 4183 template <typename..., typename T = ::std::map<::std::string, ::std::int32_t>> 4184 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n1() && { 4185 return {static_cast<T&&>(this->__fbthrift_field_n1), __isset.at(24), __isset.bit(24)}; 4186 } 4187 4188 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4189 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n2_ref() const& { 4190 return {this->__fbthrift_field_n2, __isset.at(25), __isset.bit(25)}; 4191 } 4192 4193 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4194 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n2_ref() const&& { 4195 return {static_cast<const T&&>(this->__fbthrift_field_n2), __isset.at(25), __isset.bit(25)}; 4196 } 4197 4198 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4199 FOLLY_ERASE ::apache::thrift::field_ref<T&> n2_ref() & { 4200 return {this->__fbthrift_field_n2, __isset.at(25), __isset.bit(25)}; 4201 } 4202 4203 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4204 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n2_ref() && { 4205 return {static_cast<T&&>(this->__fbthrift_field_n2), __isset.at(25), __isset.bit(25)}; 4206 } 4207 4208 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4209 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n2() const& { 4210 return {this->__fbthrift_field_n2, __isset.at(25), __isset.bit(25)}; 4211 } 4212 4213 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4214 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n2() const&& { 4215 return {static_cast<const T&&>(this->__fbthrift_field_n2), __isset.at(25), __isset.bit(25)}; 4216 } 4217 4218 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4219 FOLLY_ERASE ::apache::thrift::field_ref<T&> n2() & { 4220 return {this->__fbthrift_field_n2, __isset.at(25), __isset.bit(25)}; 4221 } 4222 4223 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4224 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n2() && { 4225 return {static_cast<T&&>(this->__fbthrift_field_n2), __isset.at(25), __isset.bit(25)}; 4226 } 4227 4228 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4229 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n3_ref() const& { 4230 return {this->__fbthrift_field_n3, __isset.at(26), __isset.bit(26)}; 4231 } 4232 4233 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4234 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n3_ref() const&& { 4235 return {static_cast<const T&&>(this->__fbthrift_field_n3), __isset.at(26), __isset.bit(26)}; 4236 } 4237 4238 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4239 FOLLY_ERASE ::apache::thrift::field_ref<T&> n3_ref() & { 4240 return {this->__fbthrift_field_n3, __isset.at(26), __isset.bit(26)}; 4241 } 4242 4243 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4244 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n3_ref() && { 4245 return {static_cast<T&&>(this->__fbthrift_field_n3), __isset.at(26), __isset.bit(26)}; 4246 } 4247 4248 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4249 FOLLY_ERASE ::apache::thrift::field_ref<const T&> n3() const& { 4250 return {this->__fbthrift_field_n3, __isset.at(26), __isset.bit(26)}; 4251 } 4252 4253 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4254 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> n3() const&& { 4255 return {static_cast<const T&&>(this->__fbthrift_field_n3), __isset.at(26), __isset.bit(26)}; 4256 } 4257 4258 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4259 FOLLY_ERASE ::apache::thrift::field_ref<T&> n3() & { 4260 return {this->__fbthrift_field_n3, __isset.at(26), __isset.bit(26)}; 4261 } 4262 4263 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4264 FOLLY_ERASE ::apache::thrift::field_ref<T&&> n3() && { 4265 return {static_cast<T&&>(this->__fbthrift_field_n3), __isset.at(26), __isset.bit(26)}; 4266 } 4267 4268 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4269 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o1_ref() const& { 4270 return {this->__fbthrift_field_o1, __isset.at(27), __isset.bit(27)}; 4271 } 4272 4273 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4274 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o1_ref() const&& { 4275 return {static_cast<const T&&>(this->__fbthrift_field_o1), __isset.at(27), __isset.bit(27)}; 4276 } 4277 4278 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4279 FOLLY_ERASE ::apache::thrift::field_ref<T&> o1_ref() & { 4280 return {this->__fbthrift_field_o1, __isset.at(27), __isset.bit(27)}; 4281 } 4282 4283 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4284 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o1_ref() && { 4285 return {static_cast<T&&>(this->__fbthrift_field_o1), __isset.at(27), __isset.bit(27)}; 4286 } 4287 4288 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4289 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o1() const& { 4290 return {this->__fbthrift_field_o1, __isset.at(27), __isset.bit(27)}; 4291 } 4292 4293 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4294 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o1() const&& { 4295 return {static_cast<const T&&>(this->__fbthrift_field_o1), __isset.at(27), __isset.bit(27)}; 4296 } 4297 4298 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4299 FOLLY_ERASE ::apache::thrift::field_ref<T&> o1() & { 4300 return {this->__fbthrift_field_o1, __isset.at(27), __isset.bit(27)}; 4301 } 4302 4303 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4304 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o1() && { 4305 return {static_cast<T&&>(this->__fbthrift_field_o1), __isset.at(27), __isset.bit(27)}; 4306 } 4307 4308 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4309 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o2_ref() const& { 4310 return {this->__fbthrift_field_o2, __isset.at(28), __isset.bit(28)}; 4311 } 4312 4313 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4314 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o2_ref() const&& { 4315 return {static_cast<const T&&>(this->__fbthrift_field_o2), __isset.at(28), __isset.bit(28)}; 4316 } 4317 4318 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4319 FOLLY_ERASE ::apache::thrift::field_ref<T&> o2_ref() & { 4320 return {this->__fbthrift_field_o2, __isset.at(28), __isset.bit(28)}; 4321 } 4322 4323 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4324 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o2_ref() && { 4325 return {static_cast<T&&>(this->__fbthrift_field_o2), __isset.at(28), __isset.bit(28)}; 4326 } 4327 4328 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4329 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o2() const& { 4330 return {this->__fbthrift_field_o2, __isset.at(28), __isset.bit(28)}; 4331 } 4332 4333 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4334 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o2() const&& { 4335 return {static_cast<const T&&>(this->__fbthrift_field_o2), __isset.at(28), __isset.bit(28)}; 4336 } 4337 4338 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4339 FOLLY_ERASE ::apache::thrift::field_ref<T&> o2() & { 4340 return {this->__fbthrift_field_o2, __isset.at(28), __isset.bit(28)}; 4341 } 4342 4343 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4344 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o2() && { 4345 return {static_cast<T&&>(this->__fbthrift_field_o2), __isset.at(28), __isset.bit(28)}; 4346 } 4347 4348 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4349 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o3_ref() const& { 4350 return {this->__fbthrift_field_o3, __isset.at(29), __isset.bit(29)}; 4351 } 4352 4353 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4354 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o3_ref() const&& { 4355 return {static_cast<const T&&>(this->__fbthrift_field_o3), __isset.at(29), __isset.bit(29)}; 4356 } 4357 4358 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4359 FOLLY_ERASE ::apache::thrift::field_ref<T&> o3_ref() & { 4360 return {this->__fbthrift_field_o3, __isset.at(29), __isset.bit(29)}; 4361 } 4362 4363 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4364 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o3_ref() && { 4365 return {static_cast<T&&>(this->__fbthrift_field_o3), __isset.at(29), __isset.bit(29)}; 4366 } 4367 4368 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4369 FOLLY_ERASE ::apache::thrift::field_ref<const T&> o3() const& { 4370 return {this->__fbthrift_field_o3, __isset.at(29), __isset.bit(29)}; 4371 } 4372 4373 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4374 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> o3() const&& { 4375 return {static_cast<const T&&>(this->__fbthrift_field_o3), __isset.at(29), __isset.bit(29)}; 4376 } 4377 4378 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4379 FOLLY_ERASE ::apache::thrift::field_ref<T&> o3() & { 4380 return {this->__fbthrift_field_o3, __isset.at(29), __isset.bit(29)}; 4381 } 4382 4383 template <typename..., typename T = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4384 FOLLY_ERASE ::apache::thrift::field_ref<T&&> o3() && { 4385 return {static_cast<T&&>(this->__fbthrift_field_o3), __isset.at(29), __isset.bit(29)}; 4386 } 4387 4388 ::std::int32_t get_a() const { 4389 return __fbthrift_field_a; 4390 } 4391 4392 [[deprecated("Use `FOO.a_ref() = BAR;` instead of `FOO.set_a(BAR);`")]] 4393 ::std::int32_t& set_a(::std::int32_t a_) { 4394 a_ref() = a_; 4395 return __fbthrift_field_a; 4396 } 4397 4398 const ::std::string& get_b() const& { 4399 return __fbthrift_field_b; 4400 } 4401 4402 ::std::string get_b() && { 4403 return std::move(__fbthrift_field_b); 4404 } 4405 4406 template <typename T_structC_b_struct_setter = ::std::string> 4407 [[deprecated("Use `FOO.b_ref() = BAR;` instead of `FOO.set_b(BAR);`")]] 4408 ::std::string& set_b(T_structC_b_struct_setter&& b_) { 4409 b_ref() = std::forward<T_structC_b_struct_setter>(b_); 4410 return __fbthrift_field_b; 4411 } 4412 4413 double get_c() const { 4414 return __fbthrift_field_c; 4415 } 4416 4417 [[deprecated("Use `FOO.c_ref() = BAR;` instead of `FOO.set_c(BAR);`")]] 4418 double& set_c(double c_) { 4419 c_ref() = c_; 4420 return __fbthrift_field_c; 4421 } 4422 4423 bool get_d() const { 4424 return __fbthrift_field_d; 4425 } 4426 4427 [[deprecated("Use `FOO.d_ref() = BAR;` instead of `FOO.set_d(BAR);`")]] 4428 bool& set_d(bool d_) { 4429 d_ref() = d_; 4430 return __fbthrift_field_d; 4431 } 4432 4433 ::test_cpp2::cpp_reflection::enum1 get_e() const { 4434 return __fbthrift_field_e; 4435 } 4436 4437 [[deprecated("Use `FOO.e_ref() = BAR;` instead of `FOO.set_e(BAR);`")]] 4438 ::test_cpp2::cpp_reflection::enum1& set_e(::test_cpp2::cpp_reflection::enum1 e_) { 4439 e_ref() = e_; 4440 return __fbthrift_field_e; 4441 } 4442 4443 ::test_cpp2::cpp_reflection::enum2 get_f() const { 4444 return __fbthrift_field_f; 4445 } 4446 4447 [[deprecated("Use `FOO.f_ref() = BAR;` instead of `FOO.set_f(BAR);`")]] 4448 ::test_cpp2::cpp_reflection::enum2& set_f(::test_cpp2::cpp_reflection::enum2 f_) { 4449 f_ref() = f_; 4450 return __fbthrift_field_f; 4451 } 4452 const ::test_cpp2::cpp_reflection::union1& get_g() const&; 4453 ::test_cpp2::cpp_reflection::union1 get_g() &&; 4454 4455 template <typename T_structC_g_struct_setter = ::test_cpp2::cpp_reflection::union1> 4456 [[deprecated("Use `FOO.g_ref() = BAR;` instead of `FOO.set_g(BAR);`")]] 4457 ::test_cpp2::cpp_reflection::union1& set_g(T_structC_g_struct_setter&& g_) { 4458 g_ref() = std::forward<T_structC_g_struct_setter>(g_); 4459 return __fbthrift_field_g; 4460 } 4461 const ::test_cpp2::cpp_reflection::unionA& get_h() const&; 4462 ::test_cpp2::cpp_reflection::unionA get_h() &&; 4463 4464 template <typename T_structC_h_struct_setter = ::test_cpp2::cpp_reflection::unionA> 4465 [[deprecated("Use `FOO.h_ref() = BAR;` instead of `FOO.set_h(BAR);`")]] 4466 ::test_cpp2::cpp_reflection::unionA& set_h(T_structC_h_struct_setter&& h_) { 4467 h_ref() = std::forward<T_structC_h_struct_setter>(h_); 4468 return __fbthrift_field_h; 4469 } 4470 const ::test_cpp2::cpp_reflection::unionA& get_i() const&; 4471 ::test_cpp2::cpp_reflection::unionA get_i() &&; 4472 4473 template <typename T_structC_i_struct_setter = ::test_cpp2::cpp_reflection::unionA> 4474 [[deprecated("Use `FOO.i_ref() = BAR;` instead of `FOO.set_i(BAR);`")]] 4475 ::test_cpp2::cpp_reflection::unionA& set_i(T_structC_i_struct_setter&& i_) { 4476 i_ref() = std::forward<T_structC_i_struct_setter>(i_); 4477 return __fbthrift_field_i; 4478 } 4479 const ::std::vector<::std::int32_t>& get_j() const&; 4480 ::std::vector<::std::int32_t> get_j() &&; 4481 4482 template <typename T_structC_j_struct_setter = ::std::vector<::std::int32_t>> 4483 [[deprecated("Use `FOO.j_ref() = BAR;` instead of `FOO.set_j(BAR);`")]] 4484 ::std::vector<::std::int32_t>& set_j(T_structC_j_struct_setter&& j_) { 4485 j_ref() = std::forward<T_structC_j_struct_setter>(j_); 4486 return __fbthrift_field_j; 4487 } 4488 const ::std::vector<::std::int32_t>& get_j1() const&; 4489 ::std::vector<::std::int32_t> get_j1() &&; 4490 4491 template <typename T_structC_j1_struct_setter = ::std::vector<::std::int32_t>> 4492 [[deprecated("Use `FOO.j1_ref() = BAR;` instead of `FOO.set_j1(BAR);`")]] 4493 ::std::vector<::std::int32_t>& set_j1(T_structC_j1_struct_setter&& j1_) { 4494 j1_ref() = std::forward<T_structC_j1_struct_setter>(j1_); 4495 return __fbthrift_field_j1; 4496 } 4497 const ::std::vector<::test_cpp2::cpp_reflection::enum1>& get_j2() const&; 4498 ::std::vector<::test_cpp2::cpp_reflection::enum1> get_j2() &&; 4499 4500 template <typename T_structC_j2_struct_setter = ::std::vector<::test_cpp2::cpp_reflection::enum1>> 4501 [[deprecated("Use `FOO.j2_ref() = BAR;` instead of `FOO.set_j2(BAR);`")]] 4502 ::std::vector<::test_cpp2::cpp_reflection::enum1>& set_j2(T_structC_j2_struct_setter&& j2_) { 4503 j2_ref() = std::forward<T_structC_j2_struct_setter>(j2_); 4504 return __fbthrift_field_j2; 4505 } 4506 const ::std::vector<::test_cpp2::cpp_reflection::structA>& get_j3() const&; 4507 ::std::vector<::test_cpp2::cpp_reflection::structA> get_j3() &&; 4508 4509 template <typename T_structC_j3_struct_setter = ::std::vector<::test_cpp2::cpp_reflection::structA>> 4510 [[deprecated("Use `FOO.j3_ref() = BAR;` instead of `FOO.set_j3(BAR);`")]] 4511 ::std::vector<::test_cpp2::cpp_reflection::structA>& set_j3(T_structC_j3_struct_setter&& j3_) { 4512 j3_ref() = std::forward<T_structC_j3_struct_setter>(j3_); 4513 return __fbthrift_field_j3; 4514 } 4515 const ::std::set<::std::int32_t>& get_k() const&; 4516 ::std::set<::std::int32_t> get_k() &&; 4517 4518 template <typename T_structC_k_struct_setter = ::std::set<::std::int32_t>> 4519 [[deprecated("Use `FOO.k_ref() = BAR;` instead of `FOO.set_k(BAR);`")]] 4520 ::std::set<::std::int32_t>& set_k(T_structC_k_struct_setter&& k_) { 4521 k_ref() = std::forward<T_structC_k_struct_setter>(k_); 4522 return __fbthrift_field_k; 4523 } 4524 const ::std::set<::std::int32_t>& get_k1() const&; 4525 ::std::set<::std::int32_t> get_k1() &&; 4526 4527 template <typename T_structC_k1_struct_setter = ::std::set<::std::int32_t>> 4528 [[deprecated("Use `FOO.k1_ref() = BAR;` instead of `FOO.set_k1(BAR);`")]] 4529 ::std::set<::std::int32_t>& set_k1(T_structC_k1_struct_setter&& k1_) { 4530 k1_ref() = std::forward<T_structC_k1_struct_setter>(k1_); 4531 return __fbthrift_field_k1; 4532 } 4533 const ::std::set<::test_cpp2::cpp_reflection::enum2>& get_k2() const&; 4534 ::std::set<::test_cpp2::cpp_reflection::enum2> get_k2() &&; 4535 4536 template <typename T_structC_k2_struct_setter = ::std::set<::test_cpp2::cpp_reflection::enum2>> 4537 [[deprecated("Use `FOO.k2_ref() = BAR;` instead of `FOO.set_k2(BAR);`")]] 4538 ::std::set<::test_cpp2::cpp_reflection::enum2>& set_k2(T_structC_k2_struct_setter&& k2_) { 4539 k2_ref() = std::forward<T_structC_k2_struct_setter>(k2_); 4540 return __fbthrift_field_k2; 4541 } 4542 const ::std::set<::test_cpp2::cpp_reflection::structB>& get_k3() const&; 4543 ::std::set<::test_cpp2::cpp_reflection::structB> get_k3() &&; 4544 4545 template <typename T_structC_k3_struct_setter = ::std::set<::test_cpp2::cpp_reflection::structB>> 4546 [[deprecated("Use `FOO.k3_ref() = BAR;` instead of `FOO.set_k3(BAR);`")]] 4547 ::std::set<::test_cpp2::cpp_reflection::structB>& set_k3(T_structC_k3_struct_setter&& k3_) { 4548 k3_ref() = std::forward<T_structC_k3_struct_setter>(k3_); 4549 return __fbthrift_field_k3; 4550 } 4551 const ::std::map<::std::int32_t, ::std::int32_t>& get_l() const&; 4552 ::std::map<::std::int32_t, ::std::int32_t> get_l() &&; 4553 4554 template <typename T_structC_l_struct_setter = ::std::map<::std::int32_t, ::std::int32_t>> 4555 [[deprecated("Use `FOO.l_ref() = BAR;` instead of `FOO.set_l(BAR);`")]] 4556 ::std::map<::std::int32_t, ::std::int32_t>& set_l(T_structC_l_struct_setter&& l_) { 4557 l_ref() = std::forward<T_structC_l_struct_setter>(l_); 4558 return __fbthrift_field_l; 4559 } 4560 const ::std::map<::std::int32_t, ::std::int32_t>& get_l1() const&; 4561 ::std::map<::std::int32_t, ::std::int32_t> get_l1() &&; 4562 4563 template <typename T_structC_l1_struct_setter = ::std::map<::std::int32_t, ::std::int32_t>> 4564 [[deprecated("Use `FOO.l1_ref() = BAR;` instead of `FOO.set_l1(BAR);`")]] 4565 ::std::map<::std::int32_t, ::std::int32_t>& set_l1(T_structC_l1_struct_setter&& l1_) { 4566 l1_ref() = std::forward<T_structC_l1_struct_setter>(l1_); 4567 return __fbthrift_field_l1; 4568 } 4569 const ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>& get_l2() const&; 4570 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1> get_l2() &&; 4571 4572 template <typename T_structC_l2_struct_setter = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>> 4573 [[deprecated("Use `FOO.l2_ref() = BAR;` instead of `FOO.set_l2(BAR);`")]] 4574 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::enum1>& set_l2(T_structC_l2_struct_setter&& l2_) { 4575 l2_ref() = std::forward<T_structC_l2_struct_setter>(l2_); 4576 return __fbthrift_field_l2; 4577 } 4578 const ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>& get_l3() const&; 4579 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB> get_l3() &&; 4580 4581 template <typename T_structC_l3_struct_setter = ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>> 4582 [[deprecated("Use `FOO.l3_ref() = BAR;` instead of `FOO.set_l3(BAR);`")]] 4583 ::std::map<::std::int32_t, ::test_cpp2::cpp_reflection::structB>& set_l3(T_structC_l3_struct_setter&& l3_) { 4584 l3_ref() = std::forward<T_structC_l3_struct_setter>(l3_); 4585 return __fbthrift_field_l3; 4586 } 4587 const ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>& get_m1() const&; 4588 ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t> get_m1() &&; 4589 4590 template <typename T_structC_m1_struct_setter = ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>> 4591 [[deprecated("Use `FOO.m1_ref() = BAR;` instead of `FOO.set_m1(BAR);`")]] 4592 ::std::map<::test_cpp2::cpp_reflection::enum1, ::std::int32_t>& set_m1(T_structC_m1_struct_setter&& m1_) { 4593 m1_ref() = std::forward<T_structC_m1_struct_setter>(m1_); 4594 return __fbthrift_field_m1; 4595 } 4596 const ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>& get_m2() const&; 4597 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2> get_m2() &&; 4598 4599 template <typename T_structC_m2_struct_setter = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>> 4600 [[deprecated("Use `FOO.m2_ref() = BAR;` instead of `FOO.set_m2(BAR);`")]] 4601 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::enum2>& set_m2(T_structC_m2_struct_setter&& m2_) { 4602 m2_ref() = std::forward<T_structC_m2_struct_setter>(m2_); 4603 return __fbthrift_field_m2; 4604 } 4605 const ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>& get_m3() const&; 4606 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB> get_m3() &&; 4607 4608 template <typename T_structC_m3_struct_setter = ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>> 4609 [[deprecated("Use `FOO.m3_ref() = BAR;` instead of `FOO.set_m3(BAR);`")]] 4610 ::std::map<::test_cpp2::cpp_reflection::enum1, ::test_cpp2::cpp_reflection::structB>& set_m3(T_structC_m3_struct_setter&& m3_) { 4611 m3_ref() = std::forward<T_structC_m3_struct_setter>(m3_); 4612 return __fbthrift_field_m3; 4613 } 4614 const ::std::map<::std::string, ::std::int32_t>& get_n1() const&; 4615 ::std::map<::std::string, ::std::int32_t> get_n1() &&; 4616 4617 template <typename T_structC_n1_struct_setter = ::std::map<::std::string, ::std::int32_t>> 4618 [[deprecated("Use `FOO.n1_ref() = BAR;` instead of `FOO.set_n1(BAR);`")]] 4619 ::std::map<::std::string, ::std::int32_t>& set_n1(T_structC_n1_struct_setter&& n1_) { 4620 n1_ref() = std::forward<T_structC_n1_struct_setter>(n1_); 4621 return __fbthrift_field_n1; 4622 } 4623 const ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>& get_n2() const&; 4624 ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1> get_n2() &&; 4625 4626 template <typename T_structC_n2_struct_setter = ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>> 4627 [[deprecated("Use `FOO.n2_ref() = BAR;` instead of `FOO.set_n2(BAR);`")]] 4628 ::std::map<::std::string, ::test_cpp2::cpp_reflection::enum1>& set_n2(T_structC_n2_struct_setter&& n2_) { 4629 n2_ref() = std::forward<T_structC_n2_struct_setter>(n2_); 4630 return __fbthrift_field_n2; 4631 } 4632 const ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>& get_n3() const&; 4633 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> get_n3() &&; 4634 4635 template <typename T_structC_n3_struct_setter = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 4636 [[deprecated("Use `FOO.n3_ref() = BAR;` instead of `FOO.set_n3(BAR);`")]] 4637 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>& set_n3(T_structC_n3_struct_setter&& n3_) { 4638 n3_ref() = std::forward<T_structC_n3_struct_setter>(n3_); 4639 return __fbthrift_field_n3; 4640 } 4641 const ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>& get_o1() const&; 4642 ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t> get_o1() &&; 4643 4644 template <typename T_structC_o1_struct_setter = ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>> 4645 [[deprecated("Use `FOO.o1_ref() = BAR;` instead of `FOO.set_o1(BAR);`")]] 4646 ::std::map<::test_cpp2::cpp_reflection::structA, ::std::int32_t>& set_o1(T_structC_o1_struct_setter&& o1_) { 4647 o1_ref() = std::forward<T_structC_o1_struct_setter>(o1_); 4648 return __fbthrift_field_o1; 4649 } 4650 const ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>& get_o2() const&; 4651 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1> get_o2() &&; 4652 4653 template <typename T_structC_o2_struct_setter = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>> 4654 [[deprecated("Use `FOO.o2_ref() = BAR;` instead of `FOO.set_o2(BAR);`")]] 4655 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::enum1>& set_o2(T_structC_o2_struct_setter&& o2_) { 4656 o2_ref() = std::forward<T_structC_o2_struct_setter>(o2_); 4657 return __fbthrift_field_o2; 4658 } 4659 const ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>& get_o3() const&; 4660 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB> get_o3() &&; 4661 4662 template <typename T_structC_o3_struct_setter = ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>> 4663 [[deprecated("Use `FOO.o3_ref() = BAR;` instead of `FOO.set_o3(BAR);`")]] 4664 ::std::map<::test_cpp2::cpp_reflection::structA, ::test_cpp2::cpp_reflection::structB>& set_o3(T_structC_o3_struct_setter&& o3_) { 4665 o3_ref() = std::forward<T_structC_o3_struct_setter>(o3_); 4666 return __fbthrift_field_o3; 4667 } 4668 4669 template <class Protocol_> 4670 uint32_t read(Protocol_* iprot); 4671 template <class Protocol_> 4672 uint32_t serializedSize(Protocol_ const* prot_) const; 4673 template <class Protocol_> 4674 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 4675 template <class Protocol_> 4676 uint32_t write(Protocol_* prot_) const; 4677 4678 private: 4679 template <class Protocol_> 4680 void readNoXfer(Protocol_* iprot); 4681 4682 friend class ::apache::thrift::Cpp2Ops<structC>; 4683 friend void swap(structC& a, structC& b); 4684 }; 4685 4686 template <class Protocol_> 4687 uint32_t structC::read(Protocol_* iprot) { 4688 auto _xferStart = iprot->getCursorPosition(); 4689 readNoXfer(iprot); 4690 return iprot->getCursorPosition() - _xferStart; 4691 } 4692 4693 }} // test_cpp2::cpp_reflection 4694 namespace test_cpp2 { namespace cpp_reflection { 4695 class struct1 final { 4696 private: 4697 friend struct ::apache::thrift::detail::st::struct_private_access; 4698 4699 // used by a static_assert in the corresponding source 4700 static constexpr bool __fbthrift_cpp2_gen_json = false; 4701 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 4702 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 4703 4704 void __fbthrift_clear(); 4705 4706 public: 4707 using __fbthrift_cpp2_type = struct1; 4708 static constexpr bool __fbthrift_cpp2_is_union = 4709 false; 4710 4711 4712 public: 4713 4714 struct1(); 4715 4716 // FragileConstructor for use in initialization lists only. 4717 [[deprecated("This constructor is deprecated")]] 4718 struct1(apache::thrift::FragileConstructor, ::std::int32_t field0__arg, ::std::string field1__arg, ::test_cpp2::cpp_reflection::enum1 field2__arg, ::test_cpp2::cpp_reflection::enum2 field3__arg, ::test_cpp2::cpp_reflection::union1 field4__arg, ::test_cpp2::cpp_reflection::union2 field5__arg); 4719 4720 struct1(struct1&&) noexcept; 4721 4722 struct1(const struct1& src); 4723 4724 4725 struct1& operator=(struct1&&) noexcept; 4726 struct1& operator=(const struct1& src); 4727 4728 ~struct1(); 4729 4730 public: 4731 ::std::int32_t field0; 4732 private: 4733 ::std::string __fbthrift_field_field1; 4734 private: 4735 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_field2; 4736 public: 4737 ::test_cpp2::cpp_reflection::enum2 field3; 4738 private: 4739 ::test_cpp2::cpp_reflection::union1 __fbthrift_field_field4; 4740 private: 4741 ::test_cpp2::cpp_reflection::union2 __fbthrift_field_field5; 4742 private: 4743 apache::thrift::detail::isset_bitset<4, false> __isset; 4744 4745 public: 4746 4747 bool operator==(const struct1&) const; 4748 bool operator<(const struct1&) const; 4749 4750 template <typename..., typename T = ::std::int32_t> 4751 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> field0_ref() const& { 4752 return ::apache::thrift::required_field_ref<const T&>{this->field0}; 4753 } 4754 4755 template <typename..., typename T = ::std::int32_t> 4756 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> field0_ref() const&& { 4757 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->field0)}; 4758 } 4759 4760 template <typename..., typename T = ::std::int32_t> 4761 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> field0_ref() & { 4762 return ::apache::thrift::required_field_ref<T&>{this->field0}; 4763 } 4764 4765 template <typename..., typename T = ::std::int32_t> 4766 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> field0_ref() && { 4767 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->field0)}; 4768 } 4769 4770 template <typename..., typename T = ::std::string> 4771 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1_ref() const& { 4772 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 4773 } 4774 4775 template <typename..., typename T = ::std::string> 4776 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1_ref() const&& { 4777 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 4778 } 4779 4780 template <typename..., typename T = ::std::string> 4781 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1_ref() & { 4782 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 4783 } 4784 4785 template <typename..., typename T = ::std::string> 4786 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1_ref() && { 4787 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 4788 } 4789 4790 template <typename..., typename T = ::std::string> 4791 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1() const& { 4792 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 4793 } 4794 4795 template <typename..., typename T = ::std::string> 4796 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1() const&& { 4797 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 4798 } 4799 4800 template <typename..., typename T = ::std::string> 4801 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1() & { 4802 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 4803 } 4804 4805 template <typename..., typename T = ::std::string> 4806 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1() && { 4807 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 4808 } 4809 4810 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4811 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2_ref() const& { 4812 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 4813 } 4814 4815 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4816 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2_ref() const&& { 4817 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 4818 } 4819 4820 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4821 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2_ref() & { 4822 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 4823 } 4824 4825 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4826 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2_ref() && { 4827 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 4828 } 4829 4830 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4831 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2() const& { 4832 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 4833 } 4834 4835 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4836 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2() const&& { 4837 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 4838 } 4839 4840 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4841 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2() & { 4842 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 4843 } 4844 4845 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 4846 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2() && { 4847 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 4848 } 4849 4850 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 4851 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> field3_ref() const& { 4852 return ::apache::thrift::required_field_ref<const T&>{this->field3}; 4853 } 4854 4855 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 4856 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> field3_ref() const&& { 4857 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->field3)}; 4858 } 4859 4860 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 4861 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> field3_ref() & { 4862 return ::apache::thrift::required_field_ref<T&>{this->field3}; 4863 } 4864 4865 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 4866 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> field3_ref() && { 4867 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->field3)}; 4868 } 4869 4870 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4871 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field4_ref() const& { 4872 return {this->__fbthrift_field_field4, __isset.at(2), __isset.bit(2)}; 4873 } 4874 4875 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4876 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field4_ref() const&& { 4877 return {static_cast<const T&&>(this->__fbthrift_field_field4), __isset.at(2), __isset.bit(2)}; 4878 } 4879 4880 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4881 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field4_ref() & { 4882 return {this->__fbthrift_field_field4, __isset.at(2), __isset.bit(2)}; 4883 } 4884 4885 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4886 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field4_ref() && { 4887 return {static_cast<T&&>(this->__fbthrift_field_field4), __isset.at(2), __isset.bit(2)}; 4888 } 4889 4890 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4891 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field4() const& { 4892 return {this->__fbthrift_field_field4, __isset.at(2), __isset.bit(2)}; 4893 } 4894 4895 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4896 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field4() const&& { 4897 return {static_cast<const T&&>(this->__fbthrift_field_field4), __isset.at(2), __isset.bit(2)}; 4898 } 4899 4900 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4901 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field4() & { 4902 return {this->__fbthrift_field_field4, __isset.at(2), __isset.bit(2)}; 4903 } 4904 4905 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 4906 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field4() && { 4907 return {static_cast<T&&>(this->__fbthrift_field_field4), __isset.at(2), __isset.bit(2)}; 4908 } 4909 4910 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4911 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field5_ref() const& { 4912 return {this->__fbthrift_field_field5, __isset.at(3), __isset.bit(3)}; 4913 } 4914 4915 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4916 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field5_ref() const&& { 4917 return {static_cast<const T&&>(this->__fbthrift_field_field5), __isset.at(3), __isset.bit(3)}; 4918 } 4919 4920 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4921 FOLLY_ERASE ::apache::thrift::field_ref<T&> field5_ref() & { 4922 return {this->__fbthrift_field_field5, __isset.at(3), __isset.bit(3)}; 4923 } 4924 4925 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4926 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field5_ref() && { 4927 return {static_cast<T&&>(this->__fbthrift_field_field5), __isset.at(3), __isset.bit(3)}; 4928 } 4929 4930 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4931 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field5() const& { 4932 return {this->__fbthrift_field_field5, __isset.at(3), __isset.bit(3)}; 4933 } 4934 4935 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4936 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field5() const&& { 4937 return {static_cast<const T&&>(this->__fbthrift_field_field5), __isset.at(3), __isset.bit(3)}; 4938 } 4939 4940 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4941 FOLLY_ERASE ::apache::thrift::field_ref<T&> field5() & { 4942 return {this->__fbthrift_field_field5, __isset.at(3), __isset.bit(3)}; 4943 } 4944 4945 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 4946 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field5() && { 4947 return {static_cast<T&&>(this->__fbthrift_field_field5), __isset.at(3), __isset.bit(3)}; 4948 } 4949 4950 ::std::int32_t get_field0() const { 4951 return field0; 4952 } 4953 4954 [[deprecated("Use `FOO.field0_ref() = BAR;` instead of `FOO.set_field0(BAR);`")]] 4955 ::std::int32_t& set_field0(::std::int32_t field0_) { 4956 field0_ref() = field0_; 4957 return field0; 4958 } 4959 4960 const ::std::string* get_field1() const& { 4961 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 4962 } 4963 4964 ::std::string* get_field1() & { 4965 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 4966 } 4967 ::std::string* get_field1() && = delete; 4968 4969 template <typename T_struct1_field1_struct_setter = ::std::string> 4970 [[deprecated("Use `FOO.field1_ref() = BAR;` instead of `FOO.set_field1(BAR);`")]] 4971 ::std::string& set_field1(T_struct1_field1_struct_setter&& field1_) { 4972 field1_ref() = std::forward<T_struct1_field1_struct_setter>(field1_); 4973 return __fbthrift_field_field1; 4974 } 4975 4976 ::test_cpp2::cpp_reflection::enum1 get_field2() const { 4977 return __fbthrift_field_field2; 4978 } 4979 4980 [[deprecated("Use `FOO.field2_ref() = BAR;` instead of `FOO.set_field2(BAR);`")]] 4981 ::test_cpp2::cpp_reflection::enum1& set_field2(::test_cpp2::cpp_reflection::enum1 field2_) { 4982 field2_ref() = field2_; 4983 return __fbthrift_field_field2; 4984 } 4985 4986 ::test_cpp2::cpp_reflection::enum2 get_field3() const { 4987 return field3; 4988 } 4989 4990 [[deprecated("Use `FOO.field3_ref() = BAR;` instead of `FOO.set_field3(BAR);`")]] 4991 ::test_cpp2::cpp_reflection::enum2& set_field3(::test_cpp2::cpp_reflection::enum2 field3_) { 4992 field3_ref() = field3_; 4993 return field3; 4994 } 4995 const ::test_cpp2::cpp_reflection::union1* get_field4() const&; 4996 ::test_cpp2::cpp_reflection::union1* get_field4() &; 4997 ::test_cpp2::cpp_reflection::union1* get_field4() && = delete; 4998 4999 template <typename T_struct1_field4_struct_setter = ::test_cpp2::cpp_reflection::union1> 5000 [[deprecated("Use `FOO.field4_ref() = BAR;` instead of `FOO.set_field4(BAR);`")]] 5001 ::test_cpp2::cpp_reflection::union1& set_field4(T_struct1_field4_struct_setter&& field4_) { 5002 field4_ref() = std::forward<T_struct1_field4_struct_setter>(field4_); 5003 return __fbthrift_field_field4; 5004 } 5005 const ::test_cpp2::cpp_reflection::union2& get_field5() const&; 5006 ::test_cpp2::cpp_reflection::union2 get_field5() &&; 5007 5008 template <typename T_struct1_field5_struct_setter = ::test_cpp2::cpp_reflection::union2> 5009 [[deprecated("Use `FOO.field5_ref() = BAR;` instead of `FOO.set_field5(BAR);`")]] 5010 ::test_cpp2::cpp_reflection::union2& set_field5(T_struct1_field5_struct_setter&& field5_) { 5011 field5_ref() = std::forward<T_struct1_field5_struct_setter>(field5_); 5012 return __fbthrift_field_field5; 5013 } 5014 5015 template <class Protocol_> 5016 uint32_t read(Protocol_* iprot); 5017 template <class Protocol_> 5018 uint32_t serializedSize(Protocol_ const* prot_) const; 5019 template <class Protocol_> 5020 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 5021 template <class Protocol_> 5022 uint32_t write(Protocol_* prot_) const; 5023 5024 private: 5025 template <class Protocol_> 5026 void readNoXfer(Protocol_* iprot); 5027 5028 friend class ::apache::thrift::Cpp2Ops<struct1>; 5029 friend void swap(struct1& a, struct1& b); 5030 }; 5031 5032 template <class Protocol_> 5033 uint32_t struct1::read(Protocol_* iprot) { 5034 auto _xferStart = iprot->getCursorPosition(); 5035 readNoXfer(iprot); 5036 return iprot->getCursorPosition() - _xferStart; 5037 } 5038 5039 }} // test_cpp2::cpp_reflection 5040 namespace test_cpp2 { namespace cpp_reflection { 5041 class struct2 final { 5042 private: 5043 friend struct ::apache::thrift::detail::st::struct_private_access; 5044 5045 // used by a static_assert in the corresponding source 5046 static constexpr bool __fbthrift_cpp2_gen_json = false; 5047 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 5048 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 5049 5050 void __fbthrift_clear(); 5051 5052 public: 5053 using __fbthrift_cpp2_type = struct2; 5054 static constexpr bool __fbthrift_cpp2_is_union = 5055 false; 5056 5057 5058 public: 5059 5060 struct2(); 5061 5062 // FragileConstructor for use in initialization lists only. 5063 [[deprecated("This constructor is deprecated")]] 5064 struct2(apache::thrift::FragileConstructor, ::std::int32_t fieldA__arg, ::std::string fieldB__arg, ::test_cpp2::cpp_reflection::enum1 fieldC__arg, ::test_cpp2::cpp_reflection::enum2 fieldD__arg, ::test_cpp2::cpp_reflection::union1 fieldE__arg, ::test_cpp2::cpp_reflection::union2 fieldF__arg, ::test_cpp2::cpp_reflection::struct1 fieldG__arg); 5065 5066 struct2(struct2&&) noexcept; 5067 5068 struct2(const struct2& src); 5069 5070 5071 struct2& operator=(struct2&&) noexcept; 5072 struct2& operator=(const struct2& src); 5073 5074 ~struct2(); 5075 5076 private: 5077 ::std::int32_t __fbthrift_field_fieldA; 5078 private: 5079 ::std::string __fbthrift_field_fieldB; 5080 private: 5081 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_fieldC; 5082 private: 5083 ::test_cpp2::cpp_reflection::enum2 __fbthrift_field_fieldD; 5084 private: 5085 ::test_cpp2::cpp_reflection::union1 __fbthrift_field_fieldE; 5086 private: 5087 ::test_cpp2::cpp_reflection::union2 __fbthrift_field_fieldF; 5088 private: 5089 ::test_cpp2::cpp_reflection::struct1 __fbthrift_field_fieldG; 5090 private: 5091 apache::thrift::detail::isset_bitset<7, false> __isset; 5092 5093 public: 5094 5095 bool operator==(const struct2&) const; 5096 bool operator<(const struct2&) const; 5097 5098 template <typename..., typename T = ::std::int32_t> 5099 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldA_ref() const& { 5100 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5101 } 5102 5103 template <typename..., typename T = ::std::int32_t> 5104 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldA_ref() const&& { 5105 return {static_cast<const T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5106 } 5107 5108 template <typename..., typename T = ::std::int32_t> 5109 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldA_ref() & { 5110 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5111 } 5112 5113 template <typename..., typename T = ::std::int32_t> 5114 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldA_ref() && { 5115 return {static_cast<T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5116 } 5117 5118 template <typename..., typename T = ::std::int32_t> 5119 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldA() const& { 5120 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5121 } 5122 5123 template <typename..., typename T = ::std::int32_t> 5124 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldA() const&& { 5125 return {static_cast<const T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5126 } 5127 5128 template <typename..., typename T = ::std::int32_t> 5129 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldA() & { 5130 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5131 } 5132 5133 template <typename..., typename T = ::std::int32_t> 5134 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldA() && { 5135 return {static_cast<T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5136 } 5137 5138 template <typename..., typename T = ::std::string> 5139 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldB_ref() const& { 5140 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5141 } 5142 5143 template <typename..., typename T = ::std::string> 5144 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldB_ref() const&& { 5145 return {static_cast<const T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5146 } 5147 5148 template <typename..., typename T = ::std::string> 5149 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldB_ref() & { 5150 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5151 } 5152 5153 template <typename..., typename T = ::std::string> 5154 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldB_ref() && { 5155 return {static_cast<T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5156 } 5157 5158 template <typename..., typename T = ::std::string> 5159 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldB() const& { 5160 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5161 } 5162 5163 template <typename..., typename T = ::std::string> 5164 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldB() const&& { 5165 return {static_cast<const T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5166 } 5167 5168 template <typename..., typename T = ::std::string> 5169 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldB() & { 5170 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5171 } 5172 5173 template <typename..., typename T = ::std::string> 5174 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldB() && { 5175 return {static_cast<T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5176 } 5177 5178 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5179 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldC_ref() const& { 5180 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5181 } 5182 5183 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5184 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldC_ref() const&& { 5185 return {static_cast<const T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5186 } 5187 5188 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5189 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldC_ref() & { 5190 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5191 } 5192 5193 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5194 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldC_ref() && { 5195 return {static_cast<T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5196 } 5197 5198 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5199 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldC() const& { 5200 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5201 } 5202 5203 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5204 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldC() const&& { 5205 return {static_cast<const T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5206 } 5207 5208 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5209 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldC() & { 5210 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5211 } 5212 5213 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5214 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldC() && { 5215 return {static_cast<T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5216 } 5217 5218 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5219 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldD_ref() const& { 5220 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5221 } 5222 5223 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5224 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldD_ref() const&& { 5225 return {static_cast<const T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5226 } 5227 5228 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5229 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldD_ref() & { 5230 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5231 } 5232 5233 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5234 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldD_ref() && { 5235 return {static_cast<T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5236 } 5237 5238 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5239 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldD() const& { 5240 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5241 } 5242 5243 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5244 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldD() const&& { 5245 return {static_cast<const T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5246 } 5247 5248 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5249 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldD() & { 5250 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5251 } 5252 5253 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5254 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldD() && { 5255 return {static_cast<T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5256 } 5257 5258 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5259 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldE_ref() const& { 5260 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5261 } 5262 5263 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5264 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldE_ref() const&& { 5265 return {static_cast<const T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5266 } 5267 5268 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5269 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldE_ref() & { 5270 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5271 } 5272 5273 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5274 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldE_ref() && { 5275 return {static_cast<T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5276 } 5277 5278 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5279 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldE() const& { 5280 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5281 } 5282 5283 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5284 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldE() const&& { 5285 return {static_cast<const T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5286 } 5287 5288 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5289 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldE() & { 5290 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5291 } 5292 5293 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5294 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldE() && { 5295 return {static_cast<T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5296 } 5297 5298 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5299 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldF_ref() const& { 5300 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5301 } 5302 5303 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5304 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldF_ref() const&& { 5305 return {static_cast<const T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5306 } 5307 5308 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5309 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldF_ref() & { 5310 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5311 } 5312 5313 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5314 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldF_ref() && { 5315 return {static_cast<T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5316 } 5317 5318 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5319 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldF() const& { 5320 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5321 } 5322 5323 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5324 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldF() const&& { 5325 return {static_cast<const T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5326 } 5327 5328 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5329 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldF() & { 5330 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5331 } 5332 5333 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5334 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldF() && { 5335 return {static_cast<T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5336 } 5337 5338 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5339 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldG_ref() const& { 5340 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5341 } 5342 5343 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5344 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldG_ref() const&& { 5345 return {static_cast<const T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5346 } 5347 5348 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5349 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldG_ref() & { 5350 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5351 } 5352 5353 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5354 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldG_ref() && { 5355 return {static_cast<T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5356 } 5357 5358 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5359 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldG() const& { 5360 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5361 } 5362 5363 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5364 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldG() const&& { 5365 return {static_cast<const T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5366 } 5367 5368 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5369 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldG() & { 5370 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5371 } 5372 5373 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5374 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldG() && { 5375 return {static_cast<T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5376 } 5377 5378 ::std::int32_t get_fieldA() const { 5379 return __fbthrift_field_fieldA; 5380 } 5381 5382 [[deprecated("Use `FOO.fieldA_ref() = BAR;` instead of `FOO.set_fieldA(BAR);`")]] 5383 ::std::int32_t& set_fieldA(::std::int32_t fieldA_) { 5384 fieldA_ref() = fieldA_; 5385 return __fbthrift_field_fieldA; 5386 } 5387 5388 const ::std::string& get_fieldB() const& { 5389 return __fbthrift_field_fieldB; 5390 } 5391 5392 ::std::string get_fieldB() && { 5393 return std::move(__fbthrift_field_fieldB); 5394 } 5395 5396 template <typename T_struct2_fieldB_struct_setter = ::std::string> 5397 [[deprecated("Use `FOO.fieldB_ref() = BAR;` instead of `FOO.set_fieldB(BAR);`")]] 5398 ::std::string& set_fieldB(T_struct2_fieldB_struct_setter&& fieldB_) { 5399 fieldB_ref() = std::forward<T_struct2_fieldB_struct_setter>(fieldB_); 5400 return __fbthrift_field_fieldB; 5401 } 5402 5403 ::test_cpp2::cpp_reflection::enum1 get_fieldC() const { 5404 return __fbthrift_field_fieldC; 5405 } 5406 5407 [[deprecated("Use `FOO.fieldC_ref() = BAR;` instead of `FOO.set_fieldC(BAR);`")]] 5408 ::test_cpp2::cpp_reflection::enum1& set_fieldC(::test_cpp2::cpp_reflection::enum1 fieldC_) { 5409 fieldC_ref() = fieldC_; 5410 return __fbthrift_field_fieldC; 5411 } 5412 5413 ::test_cpp2::cpp_reflection::enum2 get_fieldD() const { 5414 return __fbthrift_field_fieldD; 5415 } 5416 5417 [[deprecated("Use `FOO.fieldD_ref() = BAR;` instead of `FOO.set_fieldD(BAR);`")]] 5418 ::test_cpp2::cpp_reflection::enum2& set_fieldD(::test_cpp2::cpp_reflection::enum2 fieldD_) { 5419 fieldD_ref() = fieldD_; 5420 return __fbthrift_field_fieldD; 5421 } 5422 const ::test_cpp2::cpp_reflection::union1& get_fieldE() const&; 5423 ::test_cpp2::cpp_reflection::union1 get_fieldE() &&; 5424 5425 template <typename T_struct2_fieldE_struct_setter = ::test_cpp2::cpp_reflection::union1> 5426 [[deprecated("Use `FOO.fieldE_ref() = BAR;` instead of `FOO.set_fieldE(BAR);`")]] 5427 ::test_cpp2::cpp_reflection::union1& set_fieldE(T_struct2_fieldE_struct_setter&& fieldE_) { 5428 fieldE_ref() = std::forward<T_struct2_fieldE_struct_setter>(fieldE_); 5429 return __fbthrift_field_fieldE; 5430 } 5431 const ::test_cpp2::cpp_reflection::union2& get_fieldF() const&; 5432 ::test_cpp2::cpp_reflection::union2 get_fieldF() &&; 5433 5434 template <typename T_struct2_fieldF_struct_setter = ::test_cpp2::cpp_reflection::union2> 5435 [[deprecated("Use `FOO.fieldF_ref() = BAR;` instead of `FOO.set_fieldF(BAR);`")]] 5436 ::test_cpp2::cpp_reflection::union2& set_fieldF(T_struct2_fieldF_struct_setter&& fieldF_) { 5437 fieldF_ref() = std::forward<T_struct2_fieldF_struct_setter>(fieldF_); 5438 return __fbthrift_field_fieldF; 5439 } 5440 const ::test_cpp2::cpp_reflection::struct1& get_fieldG() const&; 5441 ::test_cpp2::cpp_reflection::struct1 get_fieldG() &&; 5442 5443 template <typename T_struct2_fieldG_struct_setter = ::test_cpp2::cpp_reflection::struct1> 5444 [[deprecated("Use `FOO.fieldG_ref() = BAR;` instead of `FOO.set_fieldG(BAR);`")]] 5445 ::test_cpp2::cpp_reflection::struct1& set_fieldG(T_struct2_fieldG_struct_setter&& fieldG_) { 5446 fieldG_ref() = std::forward<T_struct2_fieldG_struct_setter>(fieldG_); 5447 return __fbthrift_field_fieldG; 5448 } 5449 5450 template <class Protocol_> 5451 uint32_t read(Protocol_* iprot); 5452 template <class Protocol_> 5453 uint32_t serializedSize(Protocol_ const* prot_) const; 5454 template <class Protocol_> 5455 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 5456 template <class Protocol_> 5457 uint32_t write(Protocol_* prot_) const; 5458 5459 private: 5460 template <class Protocol_> 5461 void readNoXfer(Protocol_* iprot); 5462 5463 friend class ::apache::thrift::Cpp2Ops<struct2>; 5464 friend void swap(struct2& a, struct2& b); 5465 }; 5466 5467 template <class Protocol_> 5468 uint32_t struct2::read(Protocol_* iprot) { 5469 auto _xferStart = iprot->getCursorPosition(); 5470 readNoXfer(iprot); 5471 return iprot->getCursorPosition() - _xferStart; 5472 } 5473 5474 }} // test_cpp2::cpp_reflection 5475 namespace test_cpp2 { namespace cpp_reflection { 5476 class struct3 final { 5477 private: 5478 friend struct ::apache::thrift::detail::st::struct_private_access; 5479 5480 // used by a static_assert in the corresponding source 5481 static constexpr bool __fbthrift_cpp2_gen_json = false; 5482 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 5483 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 5484 5485 void __fbthrift_clear(); 5486 5487 public: 5488 using __fbthrift_cpp2_type = struct3; 5489 static constexpr bool __fbthrift_cpp2_is_union = 5490 false; 5491 5492 5493 public: 5494 5495 struct3(); 5496 5497 // FragileConstructor for use in initialization lists only. 5498 [[deprecated("This constructor is deprecated")]] 5499 struct3(apache::thrift::FragileConstructor, ::std::int32_t fieldA__arg, ::std::string fieldB__arg, ::test_cpp2::cpp_reflection::enum1 fieldC__arg, ::test_cpp2::cpp_reflection::enum2 fieldD__arg, ::test_cpp2::cpp_reflection::union1 fieldE__arg, ::test_cpp2::cpp_reflection::union2 fieldF__arg, ::test_cpp2::cpp_reflection::struct1 fieldG__arg, ::test_cpp2::cpp_reflection::union2 fieldH__arg, ::std::vector<::std::int32_t> fieldI__arg, ::std::vector<::std::string> fieldJ__arg, ::std::vector<::std::string> fieldK__arg, ::std::vector<::test_cpp2::cpp_reflection::structA> fieldL__arg, ::std::set<::std::int32_t> fieldM__arg, ::std::set<::std::string> fieldN__arg, ::std::set<::std::string> fieldO__arg, ::std::set<::test_cpp2::cpp_reflection::structB> fieldP__arg, ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA> fieldQ__arg, ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> fieldR__arg); 5500 5501 struct3(struct3&&) noexcept; 5502 5503 struct3(const struct3& src); 5504 5505 5506 struct3& operator=(struct3&&) noexcept; 5507 struct3& operator=(const struct3& src); 5508 5509 ~struct3(); 5510 5511 private: 5512 ::std::int32_t __fbthrift_field_fieldA; 5513 private: 5514 ::std::string __fbthrift_field_fieldB; 5515 private: 5516 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_fieldC; 5517 private: 5518 ::test_cpp2::cpp_reflection::enum2 __fbthrift_field_fieldD; 5519 private: 5520 ::test_cpp2::cpp_reflection::union1 __fbthrift_field_fieldE; 5521 private: 5522 ::test_cpp2::cpp_reflection::union2 __fbthrift_field_fieldF; 5523 private: 5524 ::test_cpp2::cpp_reflection::struct1 __fbthrift_field_fieldG; 5525 private: 5526 ::test_cpp2::cpp_reflection::union2 __fbthrift_field_fieldH; 5527 private: 5528 ::std::vector<::std::int32_t> __fbthrift_field_fieldI; 5529 private: 5530 ::std::vector<::std::string> __fbthrift_field_fieldJ; 5531 private: 5532 ::std::vector<::std::string> __fbthrift_field_fieldK; 5533 private: 5534 ::std::vector<::test_cpp2::cpp_reflection::structA> __fbthrift_field_fieldL; 5535 private: 5536 ::std::set<::std::int32_t> __fbthrift_field_fieldM; 5537 private: 5538 ::std::set<::std::string> __fbthrift_field_fieldN; 5539 private: 5540 ::std::set<::std::string> __fbthrift_field_fieldO; 5541 private: 5542 ::std::set<::test_cpp2::cpp_reflection::structB> __fbthrift_field_fieldP; 5543 private: 5544 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA> __fbthrift_field_fieldQ; 5545 private: 5546 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> __fbthrift_field_fieldR; 5547 private: 5548 apache::thrift::detail::isset_bitset<18, false> __isset; 5549 5550 public: 5551 5552 bool operator==(const struct3&) const; 5553 bool operator<(const struct3&) const; 5554 5555 template <typename..., typename T = ::std::int32_t> 5556 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldA_ref() const& { 5557 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5558 } 5559 5560 template <typename..., typename T = ::std::int32_t> 5561 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldA_ref() const&& { 5562 return {static_cast<const T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5563 } 5564 5565 template <typename..., typename T = ::std::int32_t> 5566 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldA_ref() & { 5567 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5568 } 5569 5570 template <typename..., typename T = ::std::int32_t> 5571 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldA_ref() && { 5572 return {static_cast<T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5573 } 5574 5575 template <typename..., typename T = ::std::int32_t> 5576 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldA() const& { 5577 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5578 } 5579 5580 template <typename..., typename T = ::std::int32_t> 5581 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldA() const&& { 5582 return {static_cast<const T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5583 } 5584 5585 template <typename..., typename T = ::std::int32_t> 5586 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldA() & { 5587 return {this->__fbthrift_field_fieldA, __isset.at(0), __isset.bit(0)}; 5588 } 5589 5590 template <typename..., typename T = ::std::int32_t> 5591 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldA() && { 5592 return {static_cast<T&&>(this->__fbthrift_field_fieldA), __isset.at(0), __isset.bit(0)}; 5593 } 5594 5595 template <typename..., typename T = ::std::string> 5596 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldB_ref() const& { 5597 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5598 } 5599 5600 template <typename..., typename T = ::std::string> 5601 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldB_ref() const&& { 5602 return {static_cast<const T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5603 } 5604 5605 template <typename..., typename T = ::std::string> 5606 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldB_ref() & { 5607 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5608 } 5609 5610 template <typename..., typename T = ::std::string> 5611 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldB_ref() && { 5612 return {static_cast<T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5613 } 5614 5615 template <typename..., typename T = ::std::string> 5616 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldB() const& { 5617 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5618 } 5619 5620 template <typename..., typename T = ::std::string> 5621 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldB() const&& { 5622 return {static_cast<const T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5623 } 5624 5625 template <typename..., typename T = ::std::string> 5626 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldB() & { 5627 return {this->__fbthrift_field_fieldB, __isset.at(1), __isset.bit(1)}; 5628 } 5629 5630 template <typename..., typename T = ::std::string> 5631 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldB() && { 5632 return {static_cast<T&&>(this->__fbthrift_field_fieldB), __isset.at(1), __isset.bit(1)}; 5633 } 5634 5635 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5636 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldC_ref() const& { 5637 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5638 } 5639 5640 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5641 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldC_ref() const&& { 5642 return {static_cast<const T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5643 } 5644 5645 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5646 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldC_ref() & { 5647 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5648 } 5649 5650 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5651 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldC_ref() && { 5652 return {static_cast<T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5653 } 5654 5655 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5656 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldC() const& { 5657 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5658 } 5659 5660 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5661 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldC() const&& { 5662 return {static_cast<const T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5663 } 5664 5665 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5666 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldC() & { 5667 return {this->__fbthrift_field_fieldC, __isset.at(2), __isset.bit(2)}; 5668 } 5669 5670 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 5671 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldC() && { 5672 return {static_cast<T&&>(this->__fbthrift_field_fieldC), __isset.at(2), __isset.bit(2)}; 5673 } 5674 5675 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5676 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldD_ref() const& { 5677 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5678 } 5679 5680 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5681 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldD_ref() const&& { 5682 return {static_cast<const T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5683 } 5684 5685 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5686 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldD_ref() & { 5687 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5688 } 5689 5690 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5691 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldD_ref() && { 5692 return {static_cast<T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5693 } 5694 5695 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5696 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldD() const& { 5697 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5698 } 5699 5700 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5701 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldD() const&& { 5702 return {static_cast<const T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5703 } 5704 5705 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5706 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldD() & { 5707 return {this->__fbthrift_field_fieldD, __isset.at(3), __isset.bit(3)}; 5708 } 5709 5710 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum2> 5711 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldD() && { 5712 return {static_cast<T&&>(this->__fbthrift_field_fieldD), __isset.at(3), __isset.bit(3)}; 5713 } 5714 5715 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5716 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldE_ref() const& { 5717 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5718 } 5719 5720 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5721 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldE_ref() const&& { 5722 return {static_cast<const T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5723 } 5724 5725 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5726 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldE_ref() & { 5727 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5728 } 5729 5730 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5731 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldE_ref() && { 5732 return {static_cast<T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5733 } 5734 5735 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5736 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldE() const& { 5737 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5738 } 5739 5740 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5741 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldE() const&& { 5742 return {static_cast<const T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5743 } 5744 5745 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5746 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldE() & { 5747 return {this->__fbthrift_field_fieldE, __isset.at(4), __isset.bit(4)}; 5748 } 5749 5750 template <typename..., typename T = ::test_cpp2::cpp_reflection::union1> 5751 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldE() && { 5752 return {static_cast<T&&>(this->__fbthrift_field_fieldE), __isset.at(4), __isset.bit(4)}; 5753 } 5754 5755 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5756 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldF_ref() const& { 5757 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5758 } 5759 5760 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5761 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldF_ref() const&& { 5762 return {static_cast<const T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5763 } 5764 5765 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5766 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldF_ref() & { 5767 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5768 } 5769 5770 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5771 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldF_ref() && { 5772 return {static_cast<T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5773 } 5774 5775 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5776 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldF() const& { 5777 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5778 } 5779 5780 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5781 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldF() const&& { 5782 return {static_cast<const T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5783 } 5784 5785 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5786 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldF() & { 5787 return {this->__fbthrift_field_fieldF, __isset.at(5), __isset.bit(5)}; 5788 } 5789 5790 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5791 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldF() && { 5792 return {static_cast<T&&>(this->__fbthrift_field_fieldF), __isset.at(5), __isset.bit(5)}; 5793 } 5794 5795 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5796 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldG_ref() const& { 5797 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5798 } 5799 5800 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5801 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldG_ref() const&& { 5802 return {static_cast<const T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5803 } 5804 5805 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5806 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldG_ref() & { 5807 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5808 } 5809 5810 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5811 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldG_ref() && { 5812 return {static_cast<T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5813 } 5814 5815 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5816 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldG() const& { 5817 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5818 } 5819 5820 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5821 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldG() const&& { 5822 return {static_cast<const T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5823 } 5824 5825 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5826 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldG() & { 5827 return {this->__fbthrift_field_fieldG, __isset.at(6), __isset.bit(6)}; 5828 } 5829 5830 template <typename..., typename T = ::test_cpp2::cpp_reflection::struct1> 5831 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldG() && { 5832 return {static_cast<T&&>(this->__fbthrift_field_fieldG), __isset.at(6), __isset.bit(6)}; 5833 } 5834 5835 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5836 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldH_ref() const& { 5837 return {this->__fbthrift_field_fieldH, __isset.at(7), __isset.bit(7)}; 5838 } 5839 5840 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5841 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldH_ref() const&& { 5842 return {static_cast<const T&&>(this->__fbthrift_field_fieldH), __isset.at(7), __isset.bit(7)}; 5843 } 5844 5845 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5846 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldH_ref() & { 5847 return {this->__fbthrift_field_fieldH, __isset.at(7), __isset.bit(7)}; 5848 } 5849 5850 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5851 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldH_ref() && { 5852 return {static_cast<T&&>(this->__fbthrift_field_fieldH), __isset.at(7), __isset.bit(7)}; 5853 } 5854 5855 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5856 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldH() const& { 5857 return {this->__fbthrift_field_fieldH, __isset.at(7), __isset.bit(7)}; 5858 } 5859 5860 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5861 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldH() const&& { 5862 return {static_cast<const T&&>(this->__fbthrift_field_fieldH), __isset.at(7), __isset.bit(7)}; 5863 } 5864 5865 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5866 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldH() & { 5867 return {this->__fbthrift_field_fieldH, __isset.at(7), __isset.bit(7)}; 5868 } 5869 5870 template <typename..., typename T = ::test_cpp2::cpp_reflection::union2> 5871 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldH() && { 5872 return {static_cast<T&&>(this->__fbthrift_field_fieldH), __isset.at(7), __isset.bit(7)}; 5873 } 5874 5875 template <typename..., typename T = ::std::vector<::std::int32_t>> 5876 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldI_ref() const& { 5877 return {this->__fbthrift_field_fieldI, __isset.at(8), __isset.bit(8)}; 5878 } 5879 5880 template <typename..., typename T = ::std::vector<::std::int32_t>> 5881 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldI_ref() const&& { 5882 return {static_cast<const T&&>(this->__fbthrift_field_fieldI), __isset.at(8), __isset.bit(8)}; 5883 } 5884 5885 template <typename..., typename T = ::std::vector<::std::int32_t>> 5886 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldI_ref() & { 5887 return {this->__fbthrift_field_fieldI, __isset.at(8), __isset.bit(8)}; 5888 } 5889 5890 template <typename..., typename T = ::std::vector<::std::int32_t>> 5891 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldI_ref() && { 5892 return {static_cast<T&&>(this->__fbthrift_field_fieldI), __isset.at(8), __isset.bit(8)}; 5893 } 5894 5895 template <typename..., typename T = ::std::vector<::std::int32_t>> 5896 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldI() const& { 5897 return {this->__fbthrift_field_fieldI, __isset.at(8), __isset.bit(8)}; 5898 } 5899 5900 template <typename..., typename T = ::std::vector<::std::int32_t>> 5901 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldI() const&& { 5902 return {static_cast<const T&&>(this->__fbthrift_field_fieldI), __isset.at(8), __isset.bit(8)}; 5903 } 5904 5905 template <typename..., typename T = ::std::vector<::std::int32_t>> 5906 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldI() & { 5907 return {this->__fbthrift_field_fieldI, __isset.at(8), __isset.bit(8)}; 5908 } 5909 5910 template <typename..., typename T = ::std::vector<::std::int32_t>> 5911 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldI() && { 5912 return {static_cast<T&&>(this->__fbthrift_field_fieldI), __isset.at(8), __isset.bit(8)}; 5913 } 5914 5915 template <typename..., typename T = ::std::vector<::std::string>> 5916 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldJ_ref() const& { 5917 return {this->__fbthrift_field_fieldJ, __isset.at(9), __isset.bit(9)}; 5918 } 5919 5920 template <typename..., typename T = ::std::vector<::std::string>> 5921 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldJ_ref() const&& { 5922 return {static_cast<const T&&>(this->__fbthrift_field_fieldJ), __isset.at(9), __isset.bit(9)}; 5923 } 5924 5925 template <typename..., typename T = ::std::vector<::std::string>> 5926 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldJ_ref() & { 5927 return {this->__fbthrift_field_fieldJ, __isset.at(9), __isset.bit(9)}; 5928 } 5929 5930 template <typename..., typename T = ::std::vector<::std::string>> 5931 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldJ_ref() && { 5932 return {static_cast<T&&>(this->__fbthrift_field_fieldJ), __isset.at(9), __isset.bit(9)}; 5933 } 5934 5935 template <typename..., typename T = ::std::vector<::std::string>> 5936 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldJ() const& { 5937 return {this->__fbthrift_field_fieldJ, __isset.at(9), __isset.bit(9)}; 5938 } 5939 5940 template <typename..., typename T = ::std::vector<::std::string>> 5941 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldJ() const&& { 5942 return {static_cast<const T&&>(this->__fbthrift_field_fieldJ), __isset.at(9), __isset.bit(9)}; 5943 } 5944 5945 template <typename..., typename T = ::std::vector<::std::string>> 5946 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldJ() & { 5947 return {this->__fbthrift_field_fieldJ, __isset.at(9), __isset.bit(9)}; 5948 } 5949 5950 template <typename..., typename T = ::std::vector<::std::string>> 5951 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldJ() && { 5952 return {static_cast<T&&>(this->__fbthrift_field_fieldJ), __isset.at(9), __isset.bit(9)}; 5953 } 5954 5955 template <typename..., typename T = ::std::vector<::std::string>> 5956 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldK_ref() const& { 5957 return {this->__fbthrift_field_fieldK, __isset.at(10), __isset.bit(10)}; 5958 } 5959 5960 template <typename..., typename T = ::std::vector<::std::string>> 5961 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldK_ref() const&& { 5962 return {static_cast<const T&&>(this->__fbthrift_field_fieldK), __isset.at(10), __isset.bit(10)}; 5963 } 5964 5965 template <typename..., typename T = ::std::vector<::std::string>> 5966 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldK_ref() & { 5967 return {this->__fbthrift_field_fieldK, __isset.at(10), __isset.bit(10)}; 5968 } 5969 5970 template <typename..., typename T = ::std::vector<::std::string>> 5971 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldK_ref() && { 5972 return {static_cast<T&&>(this->__fbthrift_field_fieldK), __isset.at(10), __isset.bit(10)}; 5973 } 5974 5975 template <typename..., typename T = ::std::vector<::std::string>> 5976 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldK() const& { 5977 return {this->__fbthrift_field_fieldK, __isset.at(10), __isset.bit(10)}; 5978 } 5979 5980 template <typename..., typename T = ::std::vector<::std::string>> 5981 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldK() const&& { 5982 return {static_cast<const T&&>(this->__fbthrift_field_fieldK), __isset.at(10), __isset.bit(10)}; 5983 } 5984 5985 template <typename..., typename T = ::std::vector<::std::string>> 5986 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldK() & { 5987 return {this->__fbthrift_field_fieldK, __isset.at(10), __isset.bit(10)}; 5988 } 5989 5990 template <typename..., typename T = ::std::vector<::std::string>> 5991 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldK() && { 5992 return {static_cast<T&&>(this->__fbthrift_field_fieldK), __isset.at(10), __isset.bit(10)}; 5993 } 5994 5995 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 5996 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldL_ref() const& { 5997 return {this->__fbthrift_field_fieldL, __isset.at(11), __isset.bit(11)}; 5998 } 5999 6000 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6001 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldL_ref() const&& { 6002 return {static_cast<const T&&>(this->__fbthrift_field_fieldL), __isset.at(11), __isset.bit(11)}; 6003 } 6004 6005 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6006 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldL_ref() & { 6007 return {this->__fbthrift_field_fieldL, __isset.at(11), __isset.bit(11)}; 6008 } 6009 6010 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6011 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldL_ref() && { 6012 return {static_cast<T&&>(this->__fbthrift_field_fieldL), __isset.at(11), __isset.bit(11)}; 6013 } 6014 6015 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6016 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldL() const& { 6017 return {this->__fbthrift_field_fieldL, __isset.at(11), __isset.bit(11)}; 6018 } 6019 6020 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6021 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldL() const&& { 6022 return {static_cast<const T&&>(this->__fbthrift_field_fieldL), __isset.at(11), __isset.bit(11)}; 6023 } 6024 6025 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6026 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldL() & { 6027 return {this->__fbthrift_field_fieldL, __isset.at(11), __isset.bit(11)}; 6028 } 6029 6030 template <typename..., typename T = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6031 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldL() && { 6032 return {static_cast<T&&>(this->__fbthrift_field_fieldL), __isset.at(11), __isset.bit(11)}; 6033 } 6034 6035 template <typename..., typename T = ::std::set<::std::int32_t>> 6036 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldM_ref() const& { 6037 return {this->__fbthrift_field_fieldM, __isset.at(12), __isset.bit(12)}; 6038 } 6039 6040 template <typename..., typename T = ::std::set<::std::int32_t>> 6041 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldM_ref() const&& { 6042 return {static_cast<const T&&>(this->__fbthrift_field_fieldM), __isset.at(12), __isset.bit(12)}; 6043 } 6044 6045 template <typename..., typename T = ::std::set<::std::int32_t>> 6046 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldM_ref() & { 6047 return {this->__fbthrift_field_fieldM, __isset.at(12), __isset.bit(12)}; 6048 } 6049 6050 template <typename..., typename T = ::std::set<::std::int32_t>> 6051 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldM_ref() && { 6052 return {static_cast<T&&>(this->__fbthrift_field_fieldM), __isset.at(12), __isset.bit(12)}; 6053 } 6054 6055 template <typename..., typename T = ::std::set<::std::int32_t>> 6056 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldM() const& { 6057 return {this->__fbthrift_field_fieldM, __isset.at(12), __isset.bit(12)}; 6058 } 6059 6060 template <typename..., typename T = ::std::set<::std::int32_t>> 6061 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldM() const&& { 6062 return {static_cast<const T&&>(this->__fbthrift_field_fieldM), __isset.at(12), __isset.bit(12)}; 6063 } 6064 6065 template <typename..., typename T = ::std::set<::std::int32_t>> 6066 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldM() & { 6067 return {this->__fbthrift_field_fieldM, __isset.at(12), __isset.bit(12)}; 6068 } 6069 6070 template <typename..., typename T = ::std::set<::std::int32_t>> 6071 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldM() && { 6072 return {static_cast<T&&>(this->__fbthrift_field_fieldM), __isset.at(12), __isset.bit(12)}; 6073 } 6074 6075 template <typename..., typename T = ::std::set<::std::string>> 6076 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldN_ref() const& { 6077 return {this->__fbthrift_field_fieldN, __isset.at(13), __isset.bit(13)}; 6078 } 6079 6080 template <typename..., typename T = ::std::set<::std::string>> 6081 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldN_ref() const&& { 6082 return {static_cast<const T&&>(this->__fbthrift_field_fieldN), __isset.at(13), __isset.bit(13)}; 6083 } 6084 6085 template <typename..., typename T = ::std::set<::std::string>> 6086 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldN_ref() & { 6087 return {this->__fbthrift_field_fieldN, __isset.at(13), __isset.bit(13)}; 6088 } 6089 6090 template <typename..., typename T = ::std::set<::std::string>> 6091 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldN_ref() && { 6092 return {static_cast<T&&>(this->__fbthrift_field_fieldN), __isset.at(13), __isset.bit(13)}; 6093 } 6094 6095 template <typename..., typename T = ::std::set<::std::string>> 6096 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldN() const& { 6097 return {this->__fbthrift_field_fieldN, __isset.at(13), __isset.bit(13)}; 6098 } 6099 6100 template <typename..., typename T = ::std::set<::std::string>> 6101 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldN() const&& { 6102 return {static_cast<const T&&>(this->__fbthrift_field_fieldN), __isset.at(13), __isset.bit(13)}; 6103 } 6104 6105 template <typename..., typename T = ::std::set<::std::string>> 6106 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldN() & { 6107 return {this->__fbthrift_field_fieldN, __isset.at(13), __isset.bit(13)}; 6108 } 6109 6110 template <typename..., typename T = ::std::set<::std::string>> 6111 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldN() && { 6112 return {static_cast<T&&>(this->__fbthrift_field_fieldN), __isset.at(13), __isset.bit(13)}; 6113 } 6114 6115 template <typename..., typename T = ::std::set<::std::string>> 6116 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldO_ref() const& { 6117 return {this->__fbthrift_field_fieldO, __isset.at(14), __isset.bit(14)}; 6118 } 6119 6120 template <typename..., typename T = ::std::set<::std::string>> 6121 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldO_ref() const&& { 6122 return {static_cast<const T&&>(this->__fbthrift_field_fieldO), __isset.at(14), __isset.bit(14)}; 6123 } 6124 6125 template <typename..., typename T = ::std::set<::std::string>> 6126 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldO_ref() & { 6127 return {this->__fbthrift_field_fieldO, __isset.at(14), __isset.bit(14)}; 6128 } 6129 6130 template <typename..., typename T = ::std::set<::std::string>> 6131 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldO_ref() && { 6132 return {static_cast<T&&>(this->__fbthrift_field_fieldO), __isset.at(14), __isset.bit(14)}; 6133 } 6134 6135 template <typename..., typename T = ::std::set<::std::string>> 6136 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldO() const& { 6137 return {this->__fbthrift_field_fieldO, __isset.at(14), __isset.bit(14)}; 6138 } 6139 6140 template <typename..., typename T = ::std::set<::std::string>> 6141 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldO() const&& { 6142 return {static_cast<const T&&>(this->__fbthrift_field_fieldO), __isset.at(14), __isset.bit(14)}; 6143 } 6144 6145 template <typename..., typename T = ::std::set<::std::string>> 6146 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldO() & { 6147 return {this->__fbthrift_field_fieldO, __isset.at(14), __isset.bit(14)}; 6148 } 6149 6150 template <typename..., typename T = ::std::set<::std::string>> 6151 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldO() && { 6152 return {static_cast<T&&>(this->__fbthrift_field_fieldO), __isset.at(14), __isset.bit(14)}; 6153 } 6154 6155 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6156 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldP_ref() const& { 6157 return {this->__fbthrift_field_fieldP, __isset.at(15), __isset.bit(15)}; 6158 } 6159 6160 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6161 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldP_ref() const&& { 6162 return {static_cast<const T&&>(this->__fbthrift_field_fieldP), __isset.at(15), __isset.bit(15)}; 6163 } 6164 6165 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6166 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldP_ref() & { 6167 return {this->__fbthrift_field_fieldP, __isset.at(15), __isset.bit(15)}; 6168 } 6169 6170 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6171 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldP_ref() && { 6172 return {static_cast<T&&>(this->__fbthrift_field_fieldP), __isset.at(15), __isset.bit(15)}; 6173 } 6174 6175 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6176 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldP() const& { 6177 return {this->__fbthrift_field_fieldP, __isset.at(15), __isset.bit(15)}; 6178 } 6179 6180 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6181 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldP() const&& { 6182 return {static_cast<const T&&>(this->__fbthrift_field_fieldP), __isset.at(15), __isset.bit(15)}; 6183 } 6184 6185 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6186 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldP() & { 6187 return {this->__fbthrift_field_fieldP, __isset.at(15), __isset.bit(15)}; 6188 } 6189 6190 template <typename..., typename T = ::std::set<::test_cpp2::cpp_reflection::structB>> 6191 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldP() && { 6192 return {static_cast<T&&>(this->__fbthrift_field_fieldP), __isset.at(15), __isset.bit(15)}; 6193 } 6194 6195 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6196 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldQ_ref() const& { 6197 return {this->__fbthrift_field_fieldQ, __isset.at(16), __isset.bit(16)}; 6198 } 6199 6200 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6201 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldQ_ref() const&& { 6202 return {static_cast<const T&&>(this->__fbthrift_field_fieldQ), __isset.at(16), __isset.bit(16)}; 6203 } 6204 6205 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6206 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldQ_ref() & { 6207 return {this->__fbthrift_field_fieldQ, __isset.at(16), __isset.bit(16)}; 6208 } 6209 6210 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6211 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldQ_ref() && { 6212 return {static_cast<T&&>(this->__fbthrift_field_fieldQ), __isset.at(16), __isset.bit(16)}; 6213 } 6214 6215 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6216 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldQ() const& { 6217 return {this->__fbthrift_field_fieldQ, __isset.at(16), __isset.bit(16)}; 6218 } 6219 6220 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6221 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldQ() const&& { 6222 return {static_cast<const T&&>(this->__fbthrift_field_fieldQ), __isset.at(16), __isset.bit(16)}; 6223 } 6224 6225 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6226 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldQ() & { 6227 return {this->__fbthrift_field_fieldQ, __isset.at(16), __isset.bit(16)}; 6228 } 6229 6230 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6231 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldQ() && { 6232 return {static_cast<T&&>(this->__fbthrift_field_fieldQ), __isset.at(16), __isset.bit(16)}; 6233 } 6234 6235 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6236 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldR_ref() const& { 6237 return {this->__fbthrift_field_fieldR, __isset.at(17), __isset.bit(17)}; 6238 } 6239 6240 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6241 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldR_ref() const&& { 6242 return {static_cast<const T&&>(this->__fbthrift_field_fieldR), __isset.at(17), __isset.bit(17)}; 6243 } 6244 6245 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6246 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldR_ref() & { 6247 return {this->__fbthrift_field_fieldR, __isset.at(17), __isset.bit(17)}; 6248 } 6249 6250 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6251 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldR_ref() && { 6252 return {static_cast<T&&>(this->__fbthrift_field_fieldR), __isset.at(17), __isset.bit(17)}; 6253 } 6254 6255 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6256 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fieldR() const& { 6257 return {this->__fbthrift_field_fieldR, __isset.at(17), __isset.bit(17)}; 6258 } 6259 6260 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6261 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fieldR() const&& { 6262 return {static_cast<const T&&>(this->__fbthrift_field_fieldR), __isset.at(17), __isset.bit(17)}; 6263 } 6264 6265 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6266 FOLLY_ERASE ::apache::thrift::field_ref<T&> fieldR() & { 6267 return {this->__fbthrift_field_fieldR, __isset.at(17), __isset.bit(17)}; 6268 } 6269 6270 template <typename..., typename T = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6271 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fieldR() && { 6272 return {static_cast<T&&>(this->__fbthrift_field_fieldR), __isset.at(17), __isset.bit(17)}; 6273 } 6274 6275 ::std::int32_t get_fieldA() const { 6276 return __fbthrift_field_fieldA; 6277 } 6278 6279 [[deprecated("Use `FOO.fieldA_ref() = BAR;` instead of `FOO.set_fieldA(BAR);`")]] 6280 ::std::int32_t& set_fieldA(::std::int32_t fieldA_) { 6281 fieldA_ref() = fieldA_; 6282 return __fbthrift_field_fieldA; 6283 } 6284 6285 const ::std::string& get_fieldB() const& { 6286 return __fbthrift_field_fieldB; 6287 } 6288 6289 ::std::string get_fieldB() && { 6290 return std::move(__fbthrift_field_fieldB); 6291 } 6292 6293 template <typename T_struct3_fieldB_struct_setter = ::std::string> 6294 [[deprecated("Use `FOO.fieldB_ref() = BAR;` instead of `FOO.set_fieldB(BAR);`")]] 6295 ::std::string& set_fieldB(T_struct3_fieldB_struct_setter&& fieldB_) { 6296 fieldB_ref() = std::forward<T_struct3_fieldB_struct_setter>(fieldB_); 6297 return __fbthrift_field_fieldB; 6298 } 6299 6300 ::test_cpp2::cpp_reflection::enum1 get_fieldC() const { 6301 return __fbthrift_field_fieldC; 6302 } 6303 6304 [[deprecated("Use `FOO.fieldC_ref() = BAR;` instead of `FOO.set_fieldC(BAR);`")]] 6305 ::test_cpp2::cpp_reflection::enum1& set_fieldC(::test_cpp2::cpp_reflection::enum1 fieldC_) { 6306 fieldC_ref() = fieldC_; 6307 return __fbthrift_field_fieldC; 6308 } 6309 6310 ::test_cpp2::cpp_reflection::enum2 get_fieldD() const { 6311 return __fbthrift_field_fieldD; 6312 } 6313 6314 [[deprecated("Use `FOO.fieldD_ref() = BAR;` instead of `FOO.set_fieldD(BAR);`")]] 6315 ::test_cpp2::cpp_reflection::enum2& set_fieldD(::test_cpp2::cpp_reflection::enum2 fieldD_) { 6316 fieldD_ref() = fieldD_; 6317 return __fbthrift_field_fieldD; 6318 } 6319 const ::test_cpp2::cpp_reflection::union1& get_fieldE() const&; 6320 ::test_cpp2::cpp_reflection::union1 get_fieldE() &&; 6321 6322 template <typename T_struct3_fieldE_struct_setter = ::test_cpp2::cpp_reflection::union1> 6323 [[deprecated("Use `FOO.fieldE_ref() = BAR;` instead of `FOO.set_fieldE(BAR);`")]] 6324 ::test_cpp2::cpp_reflection::union1& set_fieldE(T_struct3_fieldE_struct_setter&& fieldE_) { 6325 fieldE_ref() = std::forward<T_struct3_fieldE_struct_setter>(fieldE_); 6326 return __fbthrift_field_fieldE; 6327 } 6328 const ::test_cpp2::cpp_reflection::union2& get_fieldF() const&; 6329 ::test_cpp2::cpp_reflection::union2 get_fieldF() &&; 6330 6331 template <typename T_struct3_fieldF_struct_setter = ::test_cpp2::cpp_reflection::union2> 6332 [[deprecated("Use `FOO.fieldF_ref() = BAR;` instead of `FOO.set_fieldF(BAR);`")]] 6333 ::test_cpp2::cpp_reflection::union2& set_fieldF(T_struct3_fieldF_struct_setter&& fieldF_) { 6334 fieldF_ref() = std::forward<T_struct3_fieldF_struct_setter>(fieldF_); 6335 return __fbthrift_field_fieldF; 6336 } 6337 const ::test_cpp2::cpp_reflection::struct1& get_fieldG() const&; 6338 ::test_cpp2::cpp_reflection::struct1 get_fieldG() &&; 6339 6340 template <typename T_struct3_fieldG_struct_setter = ::test_cpp2::cpp_reflection::struct1> 6341 [[deprecated("Use `FOO.fieldG_ref() = BAR;` instead of `FOO.set_fieldG(BAR);`")]] 6342 ::test_cpp2::cpp_reflection::struct1& set_fieldG(T_struct3_fieldG_struct_setter&& fieldG_) { 6343 fieldG_ref() = std::forward<T_struct3_fieldG_struct_setter>(fieldG_); 6344 return __fbthrift_field_fieldG; 6345 } 6346 const ::test_cpp2::cpp_reflection::union2& get_fieldH() const&; 6347 ::test_cpp2::cpp_reflection::union2 get_fieldH() &&; 6348 6349 template <typename T_struct3_fieldH_struct_setter = ::test_cpp2::cpp_reflection::union2> 6350 [[deprecated("Use `FOO.fieldH_ref() = BAR;` instead of `FOO.set_fieldH(BAR);`")]] 6351 ::test_cpp2::cpp_reflection::union2& set_fieldH(T_struct3_fieldH_struct_setter&& fieldH_) { 6352 fieldH_ref() = std::forward<T_struct3_fieldH_struct_setter>(fieldH_); 6353 return __fbthrift_field_fieldH; 6354 } 6355 const ::std::vector<::std::int32_t>& get_fieldI() const&; 6356 ::std::vector<::std::int32_t> get_fieldI() &&; 6357 6358 template <typename T_struct3_fieldI_struct_setter = ::std::vector<::std::int32_t>> 6359 [[deprecated("Use `FOO.fieldI_ref() = BAR;` instead of `FOO.set_fieldI(BAR);`")]] 6360 ::std::vector<::std::int32_t>& set_fieldI(T_struct3_fieldI_struct_setter&& fieldI_) { 6361 fieldI_ref() = std::forward<T_struct3_fieldI_struct_setter>(fieldI_); 6362 return __fbthrift_field_fieldI; 6363 } 6364 const ::std::vector<::std::string>& get_fieldJ() const&; 6365 ::std::vector<::std::string> get_fieldJ() &&; 6366 6367 template <typename T_struct3_fieldJ_struct_setter = ::std::vector<::std::string>> 6368 [[deprecated("Use `FOO.fieldJ_ref() = BAR;` instead of `FOO.set_fieldJ(BAR);`")]] 6369 ::std::vector<::std::string>& set_fieldJ(T_struct3_fieldJ_struct_setter&& fieldJ_) { 6370 fieldJ_ref() = std::forward<T_struct3_fieldJ_struct_setter>(fieldJ_); 6371 return __fbthrift_field_fieldJ; 6372 } 6373 const ::std::vector<::std::string>& get_fieldK() const&; 6374 ::std::vector<::std::string> get_fieldK() &&; 6375 6376 template <typename T_struct3_fieldK_struct_setter = ::std::vector<::std::string>> 6377 [[deprecated("Use `FOO.fieldK_ref() = BAR;` instead of `FOO.set_fieldK(BAR);`")]] 6378 ::std::vector<::std::string>& set_fieldK(T_struct3_fieldK_struct_setter&& fieldK_) { 6379 fieldK_ref() = std::forward<T_struct3_fieldK_struct_setter>(fieldK_); 6380 return __fbthrift_field_fieldK; 6381 } 6382 const ::std::vector<::test_cpp2::cpp_reflection::structA>& get_fieldL() const&; 6383 ::std::vector<::test_cpp2::cpp_reflection::structA> get_fieldL() &&; 6384 6385 template <typename T_struct3_fieldL_struct_setter = ::std::vector<::test_cpp2::cpp_reflection::structA>> 6386 [[deprecated("Use `FOO.fieldL_ref() = BAR;` instead of `FOO.set_fieldL(BAR);`")]] 6387 ::std::vector<::test_cpp2::cpp_reflection::structA>& set_fieldL(T_struct3_fieldL_struct_setter&& fieldL_) { 6388 fieldL_ref() = std::forward<T_struct3_fieldL_struct_setter>(fieldL_); 6389 return __fbthrift_field_fieldL; 6390 } 6391 const ::std::set<::std::int32_t>& get_fieldM() const&; 6392 ::std::set<::std::int32_t> get_fieldM() &&; 6393 6394 template <typename T_struct3_fieldM_struct_setter = ::std::set<::std::int32_t>> 6395 [[deprecated("Use `FOO.fieldM_ref() = BAR;` instead of `FOO.set_fieldM(BAR);`")]] 6396 ::std::set<::std::int32_t>& set_fieldM(T_struct3_fieldM_struct_setter&& fieldM_) { 6397 fieldM_ref() = std::forward<T_struct3_fieldM_struct_setter>(fieldM_); 6398 return __fbthrift_field_fieldM; 6399 } 6400 const ::std::set<::std::string>& get_fieldN() const&; 6401 ::std::set<::std::string> get_fieldN() &&; 6402 6403 template <typename T_struct3_fieldN_struct_setter = ::std::set<::std::string>> 6404 [[deprecated("Use `FOO.fieldN_ref() = BAR;` instead of `FOO.set_fieldN(BAR);`")]] 6405 ::std::set<::std::string>& set_fieldN(T_struct3_fieldN_struct_setter&& fieldN_) { 6406 fieldN_ref() = std::forward<T_struct3_fieldN_struct_setter>(fieldN_); 6407 return __fbthrift_field_fieldN; 6408 } 6409 const ::std::set<::std::string>& get_fieldO() const&; 6410 ::std::set<::std::string> get_fieldO() &&; 6411 6412 template <typename T_struct3_fieldO_struct_setter = ::std::set<::std::string>> 6413 [[deprecated("Use `FOO.fieldO_ref() = BAR;` instead of `FOO.set_fieldO(BAR);`")]] 6414 ::std::set<::std::string>& set_fieldO(T_struct3_fieldO_struct_setter&& fieldO_) { 6415 fieldO_ref() = std::forward<T_struct3_fieldO_struct_setter>(fieldO_); 6416 return __fbthrift_field_fieldO; 6417 } 6418 const ::std::set<::test_cpp2::cpp_reflection::structB>& get_fieldP() const&; 6419 ::std::set<::test_cpp2::cpp_reflection::structB> get_fieldP() &&; 6420 6421 template <typename T_struct3_fieldP_struct_setter = ::std::set<::test_cpp2::cpp_reflection::structB>> 6422 [[deprecated("Use `FOO.fieldP_ref() = BAR;` instead of `FOO.set_fieldP(BAR);`")]] 6423 ::std::set<::test_cpp2::cpp_reflection::structB>& set_fieldP(T_struct3_fieldP_struct_setter&& fieldP_) { 6424 fieldP_ref() = std::forward<T_struct3_fieldP_struct_setter>(fieldP_); 6425 return __fbthrift_field_fieldP; 6426 } 6427 const ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>& get_fieldQ() const&; 6428 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA> get_fieldQ() &&; 6429 6430 template <typename T_struct3_fieldQ_struct_setter = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>> 6431 [[deprecated("Use `FOO.fieldQ_ref() = BAR;` instead of `FOO.set_fieldQ(BAR);`")]] 6432 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structA>& set_fieldQ(T_struct3_fieldQ_struct_setter&& fieldQ_) { 6433 fieldQ_ref() = std::forward<T_struct3_fieldQ_struct_setter>(fieldQ_); 6434 return __fbthrift_field_fieldQ; 6435 } 6436 const ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>& get_fieldR() const&; 6437 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB> get_fieldR() &&; 6438 6439 template <typename T_struct3_fieldR_struct_setter = ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>> 6440 [[deprecated("Use `FOO.fieldR_ref() = BAR;` instead of `FOO.set_fieldR(BAR);`")]] 6441 ::std::map<::std::string, ::test_cpp2::cpp_reflection::structB>& set_fieldR(T_struct3_fieldR_struct_setter&& fieldR_) { 6442 fieldR_ref() = std::forward<T_struct3_fieldR_struct_setter>(fieldR_); 6443 return __fbthrift_field_fieldR; 6444 } 6445 6446 template <class Protocol_> 6447 uint32_t read(Protocol_* iprot); 6448 template <class Protocol_> 6449 uint32_t serializedSize(Protocol_ const* prot_) const; 6450 template <class Protocol_> 6451 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 6452 template <class Protocol_> 6453 uint32_t write(Protocol_* prot_) const; 6454 6455 private: 6456 template <class Protocol_> 6457 void readNoXfer(Protocol_* iprot); 6458 6459 friend class ::apache::thrift::Cpp2Ops<struct3>; 6460 friend void swap(struct3& a, struct3& b); 6461 }; 6462 6463 template <class Protocol_> 6464 uint32_t struct3::read(Protocol_* iprot) { 6465 auto _xferStart = iprot->getCursorPosition(); 6466 readNoXfer(iprot); 6467 return iprot->getCursorPosition() - _xferStart; 6468 } 6469 6470 }} // test_cpp2::cpp_reflection 6471 namespace test_cpp2 { namespace cpp_reflection { 6472 class struct4 final { 6473 private: 6474 friend struct ::apache::thrift::detail::st::struct_private_access; 6475 6476 // used by a static_assert in the corresponding source 6477 static constexpr bool __fbthrift_cpp2_gen_json = false; 6478 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 6479 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 6480 6481 void __fbthrift_clear(); 6482 6483 public: 6484 using __fbthrift_cpp2_type = struct4; 6485 static constexpr bool __fbthrift_cpp2_is_union = 6486 false; 6487 6488 6489 public: 6490 6491 struct4() : 6492 field0(), 6493 __fbthrift_field_field2(), 6494 field3(std::make_unique<::test_cpp2::cpp_reflection::structA>()) { 6495 } 6496 // FragileConstructor for use in initialization lists only. 6497 [[deprecated("This constructor is deprecated")]] 6498 struct4(apache::thrift::FragileConstructor, ::std::int32_t field0__arg, ::std::string field1__arg, ::test_cpp2::cpp_reflection::enum1 field2__arg, ::std::unique_ptr<::test_cpp2::cpp_reflection::structA> field3__arg); 6499 6500 struct4(struct4&&) noexcept; 6501 struct4(const struct4& src); 6502 6503 6504 struct4& operator=(struct4&&) noexcept; 6505 struct4& operator=(const struct4& src); 6506 public: 6507 ::std::int32_t field0; 6508 private: 6509 ::std::string __fbthrift_field_field1; 6510 private: 6511 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_field2; 6512 public: 6513 ::std::unique_ptr<::test_cpp2::cpp_reflection::structA> field3; 6514 private: 6515 apache::thrift::detail::isset_bitset<2, false> __isset; 6516 6517 public: 6518 6519 bool operator==(const struct4&) const; 6520 bool operator<(const struct4&) const; 6521 6522 template <typename..., typename T = ::std::int32_t> 6523 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> field0_ref() const& { 6524 return ::apache::thrift::required_field_ref<const T&>{this->field0}; 6525 } 6526 6527 template <typename..., typename T = ::std::int32_t> 6528 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> field0_ref() const&& { 6529 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->field0)}; 6530 } 6531 6532 template <typename..., typename T = ::std::int32_t> 6533 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> field0_ref() & { 6534 return ::apache::thrift::required_field_ref<T&>{this->field0}; 6535 } 6536 6537 template <typename..., typename T = ::std::int32_t> 6538 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> field0_ref() && { 6539 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->field0)}; 6540 } 6541 6542 template <typename..., typename T = ::std::string> 6543 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1_ref() const& { 6544 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6545 } 6546 6547 template <typename..., typename T = ::std::string> 6548 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1_ref() const&& { 6549 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6550 } 6551 6552 template <typename..., typename T = ::std::string> 6553 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1_ref() & { 6554 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6555 } 6556 6557 template <typename..., typename T = ::std::string> 6558 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1_ref() && { 6559 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6560 } 6561 6562 template <typename..., typename T = ::std::string> 6563 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1() const& { 6564 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6565 } 6566 6567 template <typename..., typename T = ::std::string> 6568 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1() const&& { 6569 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6570 } 6571 6572 template <typename..., typename T = ::std::string> 6573 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1() & { 6574 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6575 } 6576 6577 template <typename..., typename T = ::std::string> 6578 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1() && { 6579 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6580 } 6581 6582 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6583 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2_ref() const& { 6584 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6585 } 6586 6587 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6588 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2_ref() const&& { 6589 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6590 } 6591 6592 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6593 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2_ref() & { 6594 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6595 } 6596 6597 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6598 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2_ref() && { 6599 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6600 } 6601 6602 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6603 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2() const& { 6604 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6605 } 6606 6607 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6608 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2() const&& { 6609 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6610 } 6611 6612 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6613 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2() & { 6614 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6615 } 6616 6617 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6618 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2() && { 6619 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6620 } 6621 template <typename ..., typename T = ::std::unique_ptr<::test_cpp2::cpp_reflection::structA>> 6622 FOLLY_ERASE T& field3_ref() & { return field3; } 6623 6624 template <typename ..., typename T = ::std::unique_ptr<::test_cpp2::cpp_reflection::structA>> 6625 FOLLY_ERASE const T& field3_ref() const& { return field3; } 6626 6627 template <typename ..., typename T = ::std::unique_ptr<::test_cpp2::cpp_reflection::structA>> 6628 FOLLY_ERASE T&& field3_ref() && { return static_cast<T&&>(field3); } 6629 6630 template <typename ..., typename T = ::std::unique_ptr<::test_cpp2::cpp_reflection::structA>> 6631 FOLLY_ERASE const T&& field3_ref() const&& { return static_cast<const T&&>(field3); } 6632 6633 ::std::int32_t get_field0() const { 6634 return field0; 6635 } 6636 6637 [[deprecated("Use `FOO.field0_ref() = BAR;` instead of `FOO.set_field0(BAR);`")]] 6638 ::std::int32_t& set_field0(::std::int32_t field0_) { 6639 field0_ref() = field0_; 6640 return field0; 6641 } 6642 6643 const ::std::string* get_field1() const& { 6644 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 6645 } 6646 6647 ::std::string* get_field1() & { 6648 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 6649 } 6650 ::std::string* get_field1() && = delete; 6651 6652 template <typename T_struct4_field1_struct_setter = ::std::string> 6653 [[deprecated("Use `FOO.field1_ref() = BAR;` instead of `FOO.set_field1(BAR);`")]] 6654 ::std::string& set_field1(T_struct4_field1_struct_setter&& field1_) { 6655 field1_ref() = std::forward<T_struct4_field1_struct_setter>(field1_); 6656 return __fbthrift_field_field1; 6657 } 6658 6659 ::test_cpp2::cpp_reflection::enum1 get_field2() const { 6660 return __fbthrift_field_field2; 6661 } 6662 6663 [[deprecated("Use `FOO.field2_ref() = BAR;` instead of `FOO.set_field2(BAR);`")]] 6664 ::test_cpp2::cpp_reflection::enum1& set_field2(::test_cpp2::cpp_reflection::enum1 field2_) { 6665 field2_ref() = field2_; 6666 return __fbthrift_field_field2; 6667 } 6668 6669 template <class Protocol_> 6670 uint32_t read(Protocol_* iprot); 6671 template <class Protocol_> 6672 uint32_t serializedSize(Protocol_ const* prot_) const; 6673 template <class Protocol_> 6674 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 6675 template <class Protocol_> 6676 uint32_t write(Protocol_* prot_) const; 6677 6678 private: 6679 template <class Protocol_> 6680 void readNoXfer(Protocol_* iprot); 6681 6682 friend class ::apache::thrift::Cpp2Ops<struct4>; 6683 friend void swap(struct4& a, struct4& b); 6684 }; 6685 6686 template <class Protocol_> 6687 uint32_t struct4::read(Protocol_* iprot) { 6688 auto _xferStart = iprot->getCursorPosition(); 6689 readNoXfer(iprot); 6690 return iprot->getCursorPosition() - _xferStart; 6691 } 6692 6693 }} // test_cpp2::cpp_reflection 6694 namespace test_cpp2 { namespace cpp_reflection { 6695 class struct5 final { 6696 private: 6697 friend struct ::apache::thrift::detail::st::struct_private_access; 6698 6699 // used by a static_assert in the corresponding source 6700 static constexpr bool __fbthrift_cpp2_gen_json = false; 6701 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 6702 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 6703 6704 void __fbthrift_clear(); 6705 6706 public: 6707 using __fbthrift_cpp2_type = struct5; 6708 static constexpr bool __fbthrift_cpp2_is_union = 6709 false; 6710 6711 6712 public: 6713 6714 struct5(); 6715 6716 // FragileConstructor for use in initialization lists only. 6717 [[deprecated("This constructor is deprecated")]] 6718 struct5(apache::thrift::FragileConstructor, ::std::int32_t field0__arg, ::std::string field1__arg, ::test_cpp2::cpp_reflection::enum1 field2__arg, ::test_cpp2::cpp_reflection::structA field3__arg, ::test_cpp2::cpp_reflection::structB field4__arg); 6719 6720 struct5(struct5&&) noexcept; 6721 6722 struct5(const struct5& src); 6723 6724 6725 struct5& operator=(struct5&&) noexcept; 6726 struct5& operator=(const struct5& src); 6727 6728 ~struct5(); 6729 6730 public: 6731 ::std::int32_t field0; 6732 private: 6733 ::std::string __fbthrift_field_field1; 6734 private: 6735 ::test_cpp2::cpp_reflection::enum1 __fbthrift_field_field2; 6736 private: 6737 ::test_cpp2::cpp_reflection::structA __fbthrift_field_field3; 6738 private: 6739 ::test_cpp2::cpp_reflection::structB __fbthrift_field_field4; 6740 private: 6741 apache::thrift::detail::isset_bitset<4, false> __isset; 6742 6743 public: 6744 6745 bool operator==(const struct5&) const; 6746 bool operator<(const struct5&) const; 6747 6748 template <typename..., typename T = ::std::int32_t> 6749 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&> field0_ref() const& { 6750 return ::apache::thrift::required_field_ref<const T&>{this->field0}; 6751 } 6752 6753 template <typename..., typename T = ::std::int32_t> 6754 FOLLY_ERASE ::apache::thrift::required_field_ref<const T&&> field0_ref() const&& { 6755 return ::apache::thrift::required_field_ref<const T&&>{static_cast<const T&&>(this->field0)}; 6756 } 6757 6758 template <typename..., typename T = ::std::int32_t> 6759 FOLLY_ERASE ::apache::thrift::required_field_ref<T&> field0_ref() & { 6760 return ::apache::thrift::required_field_ref<T&>{this->field0}; 6761 } 6762 6763 template <typename..., typename T = ::std::int32_t> 6764 FOLLY_ERASE ::apache::thrift::required_field_ref<T&&> field0_ref() && { 6765 return ::apache::thrift::required_field_ref<T&&>{static_cast<T&&>(this->field0)}; 6766 } 6767 6768 template <typename..., typename T = ::std::string> 6769 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1_ref() const& { 6770 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6771 } 6772 6773 template <typename..., typename T = ::std::string> 6774 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1_ref() const&& { 6775 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6776 } 6777 6778 template <typename..., typename T = ::std::string> 6779 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1_ref() & { 6780 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6781 } 6782 6783 template <typename..., typename T = ::std::string> 6784 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1_ref() && { 6785 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6786 } 6787 6788 template <typename..., typename T = ::std::string> 6789 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> field1() const& { 6790 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6791 } 6792 6793 template <typename..., typename T = ::std::string> 6794 FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> field1() const&& { 6795 return {static_cast<const T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6796 } 6797 6798 template <typename..., typename T = ::std::string> 6799 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> field1() & { 6800 return {this->__fbthrift_field_field1, __isset.at(0), __isset.bit(0)}; 6801 } 6802 6803 template <typename..., typename T = ::std::string> 6804 FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> field1() && { 6805 return {static_cast<T&&>(this->__fbthrift_field_field1), __isset.at(0), __isset.bit(0)}; 6806 } 6807 6808 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6809 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2_ref() const& { 6810 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6811 } 6812 6813 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6814 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2_ref() const&& { 6815 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6816 } 6817 6818 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6819 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2_ref() & { 6820 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6821 } 6822 6823 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6824 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2_ref() && { 6825 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6826 } 6827 6828 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6829 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field2() const& { 6830 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6831 } 6832 6833 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6834 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field2() const&& { 6835 return {static_cast<const T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6836 } 6837 6838 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6839 FOLLY_ERASE ::apache::thrift::field_ref<T&> field2() & { 6840 return {this->__fbthrift_field_field2, __isset.at(1), __isset.bit(1)}; 6841 } 6842 6843 template <typename..., typename T = ::test_cpp2::cpp_reflection::enum1> 6844 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field2() && { 6845 return {static_cast<T&&>(this->__fbthrift_field_field2), __isset.at(1), __isset.bit(1)}; 6846 } 6847 6848 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6849 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field3_ref() const& { 6850 return {this->__fbthrift_field_field3, __isset.at(2), __isset.bit(2)}; 6851 } 6852 6853 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6854 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field3_ref() const&& { 6855 return {static_cast<const T&&>(this->__fbthrift_field_field3), __isset.at(2), __isset.bit(2)}; 6856 } 6857 6858 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6859 FOLLY_ERASE ::apache::thrift::field_ref<T&> field3_ref() & { 6860 return {this->__fbthrift_field_field3, __isset.at(2), __isset.bit(2)}; 6861 } 6862 6863 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6864 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field3_ref() && { 6865 return {static_cast<T&&>(this->__fbthrift_field_field3), __isset.at(2), __isset.bit(2)}; 6866 } 6867 6868 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6869 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field3() const& { 6870 return {this->__fbthrift_field_field3, __isset.at(2), __isset.bit(2)}; 6871 } 6872 6873 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6874 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field3() const&& { 6875 return {static_cast<const T&&>(this->__fbthrift_field_field3), __isset.at(2), __isset.bit(2)}; 6876 } 6877 6878 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6879 FOLLY_ERASE ::apache::thrift::field_ref<T&> field3() & { 6880 return {this->__fbthrift_field_field3, __isset.at(2), __isset.bit(2)}; 6881 } 6882 6883 template <typename..., typename T = ::test_cpp2::cpp_reflection::structA> 6884 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field3() && { 6885 return {static_cast<T&&>(this->__fbthrift_field_field3), __isset.at(2), __isset.bit(2)}; 6886 } 6887 6888 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6889 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field4_ref() const& { 6890 return {this->__fbthrift_field_field4, __isset.at(3), __isset.bit(3)}; 6891 } 6892 6893 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6894 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field4_ref() const&& { 6895 return {static_cast<const T&&>(this->__fbthrift_field_field4), __isset.at(3), __isset.bit(3)}; 6896 } 6897 6898 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6899 FOLLY_ERASE ::apache::thrift::field_ref<T&> field4_ref() & { 6900 return {this->__fbthrift_field_field4, __isset.at(3), __isset.bit(3)}; 6901 } 6902 6903 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6904 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field4_ref() && { 6905 return {static_cast<T&&>(this->__fbthrift_field_field4), __isset.at(3), __isset.bit(3)}; 6906 } 6907 6908 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6909 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field4() const& { 6910 return {this->__fbthrift_field_field4, __isset.at(3), __isset.bit(3)}; 6911 } 6912 6913 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6914 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field4() const&& { 6915 return {static_cast<const T&&>(this->__fbthrift_field_field4), __isset.at(3), __isset.bit(3)}; 6916 } 6917 6918 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6919 FOLLY_ERASE ::apache::thrift::field_ref<T&> field4() & { 6920 return {this->__fbthrift_field_field4, __isset.at(3), __isset.bit(3)}; 6921 } 6922 6923 template <typename..., typename T = ::test_cpp2::cpp_reflection::structB> 6924 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field4() && { 6925 return {static_cast<T&&>(this->__fbthrift_field_field4), __isset.at(3), __isset.bit(3)}; 6926 } 6927 6928 ::std::int32_t get_field0() const { 6929 return field0; 6930 } 6931 6932 [[deprecated("Use `FOO.field0_ref() = BAR;` instead of `FOO.set_field0(BAR);`")]] 6933 ::std::int32_t& set_field0(::std::int32_t field0_) { 6934 field0_ref() = field0_; 6935 return field0; 6936 } 6937 6938 const ::std::string* get_field1() const& { 6939 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 6940 } 6941 6942 ::std::string* get_field1() & { 6943 return field1_ref() ? std::addressof(__fbthrift_field_field1) : nullptr; 6944 } 6945 ::std::string* get_field1() && = delete; 6946 6947 template <typename T_struct5_field1_struct_setter = ::std::string> 6948 [[deprecated("Use `FOO.field1_ref() = BAR;` instead of `FOO.set_field1(BAR);`")]] 6949 ::std::string& set_field1(T_struct5_field1_struct_setter&& field1_) { 6950 field1_ref() = std::forward<T_struct5_field1_struct_setter>(field1_); 6951 return __fbthrift_field_field1; 6952 } 6953 6954 ::test_cpp2::cpp_reflection::enum1 get_field2() const { 6955 return __fbthrift_field_field2; 6956 } 6957 6958 [[deprecated("Use `FOO.field2_ref() = BAR;` instead of `FOO.set_field2(BAR);`")]] 6959 ::test_cpp2::cpp_reflection::enum1& set_field2(::test_cpp2::cpp_reflection::enum1 field2_) { 6960 field2_ref() = field2_; 6961 return __fbthrift_field_field2; 6962 } 6963 const ::test_cpp2::cpp_reflection::structA& get_field3() const&; 6964 ::test_cpp2::cpp_reflection::structA get_field3() &&; 6965 6966 template <typename T_struct5_field3_struct_setter = ::test_cpp2::cpp_reflection::structA> 6967 [[deprecated("Use `FOO.field3_ref() = BAR;` instead of `FOO.set_field3(BAR);`")]] 6968 ::test_cpp2::cpp_reflection::structA& set_field3(T_struct5_field3_struct_setter&& field3_) { 6969 field3_ref() = std::forward<T_struct5_field3_struct_setter>(field3_); 6970 return __fbthrift_field_field3; 6971 } 6972 const ::test_cpp2::cpp_reflection::structB& get_field4() const&; 6973 ::test_cpp2::cpp_reflection::structB get_field4() &&; 6974 6975 template <typename T_struct5_field4_struct_setter = ::test_cpp2::cpp_reflection::structB> 6976 [[deprecated("Use `FOO.field4_ref() = BAR;` instead of `FOO.set_field4(BAR);`")]] 6977 ::test_cpp2::cpp_reflection::structB& set_field4(T_struct5_field4_struct_setter&& field4_) { 6978 field4_ref() = std::forward<T_struct5_field4_struct_setter>(field4_); 6979 return __fbthrift_field_field4; 6980 } 6981 6982 template <class Protocol_> 6983 uint32_t read(Protocol_* iprot); 6984 template <class Protocol_> 6985 uint32_t serializedSize(Protocol_ const* prot_) const; 6986 template <class Protocol_> 6987 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 6988 template <class Protocol_> 6989 uint32_t write(Protocol_* prot_) const; 6990 6991 private: 6992 template <class Protocol_> 6993 void readNoXfer(Protocol_* iprot); 6994 6995 friend class ::apache::thrift::Cpp2Ops<struct5>; 6996 friend void swap(struct5& a, struct5& b); 6997 }; 6998 6999 template <class Protocol_> 7000 uint32_t struct5::read(Protocol_* iprot) { 7001 auto _xferStart = iprot->getCursorPosition(); 7002 readNoXfer(iprot); 7003 return iprot->getCursorPosition() - _xferStart; 7004 } 7005 7006 }} // test_cpp2::cpp_reflection 7007 namespace test_cpp2 { namespace cpp_reflection { 7008 class struct_binary final { 7009 private: 7010 friend struct ::apache::thrift::detail::st::struct_private_access; 7011 7012 // used by a static_assert in the corresponding source 7013 static constexpr bool __fbthrift_cpp2_gen_json = false; 7014 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7015 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7016 7017 void __fbthrift_clear(); 7018 7019 public: 7020 using __fbthrift_cpp2_type = struct_binary; 7021 static constexpr bool __fbthrift_cpp2_is_union = 7022 false; 7023 7024 7025 public: 7026 7027 struct_binary() { 7028 } 7029 // FragileConstructor for use in initialization lists only. 7030 [[deprecated("This constructor is deprecated")]] 7031 struct_binary(apache::thrift::FragileConstructor, ::std::string bi__arg); 7032 7033 struct_binary(struct_binary&&) noexcept; 7034 7035 struct_binary(const struct_binary& src); 7036 7037 7038 struct_binary& operator=(struct_binary&&) noexcept; 7039 struct_binary& operator=(const struct_binary& src); 7040 private: 7041 ::std::string __fbthrift_field_bi; 7042 private: 7043 apache::thrift::detail::isset_bitset<1, false> __isset; 7044 7045 public: 7046 7047 bool operator==(const struct_binary&) const; 7048 bool operator<(const struct_binary&) const; 7049 7050 template <typename..., typename T = ::std::string> 7051 FOLLY_ERASE ::apache::thrift::field_ref<const T&> bi_ref() const& { 7052 return {this->__fbthrift_field_bi, __isset.at(0), __isset.bit(0)}; 7053 } 7054 7055 template <typename..., typename T = ::std::string> 7056 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> bi_ref() const&& { 7057 return {static_cast<const T&&>(this->__fbthrift_field_bi), __isset.at(0), __isset.bit(0)}; 7058 } 7059 7060 template <typename..., typename T = ::std::string> 7061 FOLLY_ERASE ::apache::thrift::field_ref<T&> bi_ref() & { 7062 return {this->__fbthrift_field_bi, __isset.at(0), __isset.bit(0)}; 7063 } 7064 7065 template <typename..., typename T = ::std::string> 7066 FOLLY_ERASE ::apache::thrift::field_ref<T&&> bi_ref() && { 7067 return {static_cast<T&&>(this->__fbthrift_field_bi), __isset.at(0), __isset.bit(0)}; 7068 } 7069 7070 template <typename..., typename T = ::std::string> 7071 FOLLY_ERASE ::apache::thrift::field_ref<const T&> bi() const& { 7072 return {this->__fbthrift_field_bi, __isset.at(0), __isset.bit(0)}; 7073 } 7074 7075 template <typename..., typename T = ::std::string> 7076 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> bi() const&& { 7077 return {static_cast<const T&&>(this->__fbthrift_field_bi), __isset.at(0), __isset.bit(0)}; 7078 } 7079 7080 template <typename..., typename T = ::std::string> 7081 FOLLY_ERASE ::apache::thrift::field_ref<T&> bi() & { 7082 return {this->__fbthrift_field_bi, __isset.at(0), __isset.bit(0)}; 7083 } 7084 7085 template <typename..., typename T = ::std::string> 7086 FOLLY_ERASE ::apache::thrift::field_ref<T&&> bi() && { 7087 return {static_cast<T&&>(this->__fbthrift_field_bi), __isset.at(0), __isset.bit(0)}; 7088 } 7089 7090 const ::std::string& get_bi() const& { 7091 return __fbthrift_field_bi; 7092 } 7093 7094 ::std::string get_bi() && { 7095 return std::move(__fbthrift_field_bi); 7096 } 7097 7098 template <typename T_struct_binary_bi_struct_setter = ::std::string> 7099 [[deprecated("Use `FOO.bi_ref() = BAR;` instead of `FOO.set_bi(BAR);`")]] 7100 ::std::string& set_bi(T_struct_binary_bi_struct_setter&& bi_) { 7101 bi_ref() = std::forward<T_struct_binary_bi_struct_setter>(bi_); 7102 return __fbthrift_field_bi; 7103 } 7104 7105 template <class Protocol_> 7106 uint32_t read(Protocol_* iprot); 7107 template <class Protocol_> 7108 uint32_t serializedSize(Protocol_ const* prot_) const; 7109 template <class Protocol_> 7110 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 7111 template <class Protocol_> 7112 uint32_t write(Protocol_* prot_) const; 7113 7114 private: 7115 template <class Protocol_> 7116 void readNoXfer(Protocol_* iprot); 7117 7118 friend class ::apache::thrift::Cpp2Ops<struct_binary>; 7119 friend void swap(struct_binary& a, struct_binary& b); 7120 }; 7121 7122 template <class Protocol_> 7123 uint32_t struct_binary::read(Protocol_* iprot) { 7124 auto _xferStart = iprot->getCursorPosition(); 7125 readNoXfer(iprot); 7126 return iprot->getCursorPosition() - _xferStart; 7127 } 7128 7129 }} // test_cpp2::cpp_reflection 7130 namespace test_cpp2 { namespace cpp_reflection { 7131 class dep_A_struct final { 7132 private: 7133 friend struct ::apache::thrift::detail::st::struct_private_access; 7134 7135 // used by a static_assert in the corresponding source 7136 static constexpr bool __fbthrift_cpp2_gen_json = false; 7137 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7138 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7139 7140 void __fbthrift_clear(); 7141 7142 public: 7143 using __fbthrift_cpp2_type = dep_A_struct; 7144 static constexpr bool __fbthrift_cpp2_is_union = 7145 false; 7146 7147 7148 public: 7149 7150 dep_A_struct() : 7151 __fbthrift_field_i_a() { 7152 } 7153 // FragileConstructor for use in initialization lists only. 7154 [[deprecated("This constructor is deprecated")]] 7155 dep_A_struct(apache::thrift::FragileConstructor, ::test_cpp2::cpp_reflection::dep_B_struct b__arg, ::test_cpp2::cpp_reflection::dep_C_struct c__arg, ::std::int32_t i_a__arg); 7156 7157 dep_A_struct(dep_A_struct&&) = default; 7158 7159 dep_A_struct(const dep_A_struct&) = default; 7160 7161 7162 dep_A_struct& operator=(dep_A_struct&&) = default; 7163 7164 dep_A_struct& operator=(const dep_A_struct&) = default; 7165 private: 7166 ::test_cpp2::cpp_reflection::dep_B_struct __fbthrift_field_b; 7167 private: 7168 ::test_cpp2::cpp_reflection::dep_C_struct __fbthrift_field_c; 7169 private: 7170 ::std::int32_t __fbthrift_field_i_a; 7171 private: 7172 apache::thrift::detail::isset_bitset<3, false> __isset; 7173 7174 public: 7175 7176 bool operator==(const dep_A_struct&) const; 7177 bool operator<(const dep_A_struct&) const; 7178 7179 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7180 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b_ref() const& { 7181 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7182 } 7183 7184 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7185 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b_ref() const&& { 7186 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7187 } 7188 7189 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7190 FOLLY_ERASE ::apache::thrift::field_ref<T&> b_ref() & { 7191 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7192 } 7193 7194 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7195 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b_ref() && { 7196 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7197 } 7198 7199 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7200 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b() const& { 7201 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7202 } 7203 7204 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7205 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b() const&& { 7206 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7207 } 7208 7209 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7210 FOLLY_ERASE ::apache::thrift::field_ref<T&> b() & { 7211 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7212 } 7213 7214 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7215 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b() && { 7216 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7217 } 7218 7219 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7220 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c_ref() const& { 7221 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7222 } 7223 7224 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7225 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c_ref() const&& { 7226 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7227 } 7228 7229 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7230 FOLLY_ERASE ::apache::thrift::field_ref<T&> c_ref() & { 7231 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7232 } 7233 7234 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7235 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c_ref() && { 7236 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7237 } 7238 7239 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7240 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c() const& { 7241 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7242 } 7243 7244 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7245 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c() const&& { 7246 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7247 } 7248 7249 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7250 FOLLY_ERASE ::apache::thrift::field_ref<T&> c() & { 7251 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7252 } 7253 7254 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7255 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c() && { 7256 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7257 } 7258 7259 template <typename..., typename T = ::std::int32_t> 7260 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i_a_ref() const& { 7261 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7262 } 7263 7264 template <typename..., typename T = ::std::int32_t> 7265 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i_a_ref() const&& { 7266 return {static_cast<const T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7267 } 7268 7269 template <typename..., typename T = ::std::int32_t> 7270 FOLLY_ERASE ::apache::thrift::field_ref<T&> i_a_ref() & { 7271 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7272 } 7273 7274 template <typename..., typename T = ::std::int32_t> 7275 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i_a_ref() && { 7276 return {static_cast<T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7277 } 7278 7279 template <typename..., typename T = ::std::int32_t> 7280 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i_a() const& { 7281 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7282 } 7283 7284 template <typename..., typename T = ::std::int32_t> 7285 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i_a() const&& { 7286 return {static_cast<const T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7287 } 7288 7289 template <typename..., typename T = ::std::int32_t> 7290 FOLLY_ERASE ::apache::thrift::field_ref<T&> i_a() & { 7291 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7292 } 7293 7294 template <typename..., typename T = ::std::int32_t> 7295 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i_a() && { 7296 return {static_cast<T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7297 } 7298 const ::test_cpp2::cpp_reflection::dep_B_struct& get_b() const&; 7299 ::test_cpp2::cpp_reflection::dep_B_struct get_b() &&; 7300 7301 template <typename T_dep_A_struct_b_struct_setter = ::test_cpp2::cpp_reflection::dep_B_struct> 7302 [[deprecated("Use `FOO.b_ref() = BAR;` instead of `FOO.set_b(BAR);`")]] 7303 ::test_cpp2::cpp_reflection::dep_B_struct& set_b(T_dep_A_struct_b_struct_setter&& b_) { 7304 b_ref() = std::forward<T_dep_A_struct_b_struct_setter>(b_); 7305 return __fbthrift_field_b; 7306 } 7307 const ::test_cpp2::cpp_reflection::dep_C_struct& get_c() const&; 7308 ::test_cpp2::cpp_reflection::dep_C_struct get_c() &&; 7309 7310 template <typename T_dep_A_struct_c_struct_setter = ::test_cpp2::cpp_reflection::dep_C_struct> 7311 [[deprecated("Use `FOO.c_ref() = BAR;` instead of `FOO.set_c(BAR);`")]] 7312 ::test_cpp2::cpp_reflection::dep_C_struct& set_c(T_dep_A_struct_c_struct_setter&& c_) { 7313 c_ref() = std::forward<T_dep_A_struct_c_struct_setter>(c_); 7314 return __fbthrift_field_c; 7315 } 7316 7317 ::std::int32_t get_i_a() const { 7318 return __fbthrift_field_i_a; 7319 } 7320 7321 [[deprecated("Use `FOO.i_a_ref() = BAR;` instead of `FOO.set_i_a(BAR);`")]] 7322 ::std::int32_t& set_i_a(::std::int32_t i_a_) { 7323 i_a_ref() = i_a_; 7324 return __fbthrift_field_i_a; 7325 } 7326 7327 template <class Protocol_> 7328 uint32_t read(Protocol_* iprot); 7329 template <class Protocol_> 7330 uint32_t serializedSize(Protocol_ const* prot_) const; 7331 template <class Protocol_> 7332 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 7333 template <class Protocol_> 7334 uint32_t write(Protocol_* prot_) const; 7335 7336 private: 7337 template <class Protocol_> 7338 void readNoXfer(Protocol_* iprot); 7339 7340 friend class ::apache::thrift::Cpp2Ops<dep_A_struct>; 7341 friend void swap(dep_A_struct& a, dep_A_struct& b); 7342 }; 7343 7344 template <class Protocol_> 7345 uint32_t dep_A_struct::read(Protocol_* iprot) { 7346 auto _xferStart = iprot->getCursorPosition(); 7347 readNoXfer(iprot); 7348 return iprot->getCursorPosition() - _xferStart; 7349 } 7350 7351 }} // test_cpp2::cpp_reflection 7352 namespace test_cpp2 { namespace cpp_reflection { 7353 class dep_B_struct final { 7354 private: 7355 friend struct ::apache::thrift::detail::st::struct_private_access; 7356 7357 // used by a static_assert in the corresponding source 7358 static constexpr bool __fbthrift_cpp2_gen_json = false; 7359 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7360 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7361 7362 void __fbthrift_clear(); 7363 7364 public: 7365 using __fbthrift_cpp2_type = dep_B_struct; 7366 static constexpr bool __fbthrift_cpp2_is_union = 7367 false; 7368 7369 7370 public: 7371 7372 dep_B_struct() : 7373 __fbthrift_field_i_a() { 7374 } 7375 // FragileConstructor for use in initialization lists only. 7376 [[deprecated("This constructor is deprecated")]] 7377 dep_B_struct(apache::thrift::FragileConstructor, ::test_cpp2::cpp_reflection::dep_B_struct b__arg, ::test_cpp2::cpp_reflection::dep_C_struct c__arg, ::std::int32_t i_a__arg); 7378 7379 dep_B_struct(dep_B_struct&&) = default; 7380 7381 dep_B_struct(const dep_B_struct&) = default; 7382 7383 7384 dep_B_struct& operator=(dep_B_struct&&) = default; 7385 7386 dep_B_struct& operator=(const dep_B_struct&) = default; 7387 private: 7388 ::test_cpp2::cpp_reflection::dep_B_struct __fbthrift_field_b; 7389 private: 7390 ::test_cpp2::cpp_reflection::dep_C_struct __fbthrift_field_c; 7391 private: 7392 ::std::int32_t __fbthrift_field_i_a; 7393 private: 7394 apache::thrift::detail::isset_bitset<3, false> __isset; 7395 7396 public: 7397 7398 bool operator==(const dep_B_struct&) const; 7399 bool operator<(const dep_B_struct&) const; 7400 7401 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7402 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b_ref() const& { 7403 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7404 } 7405 7406 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7407 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b_ref() const&& { 7408 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7409 } 7410 7411 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7412 FOLLY_ERASE ::apache::thrift::field_ref<T&> b_ref() & { 7413 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7414 } 7415 7416 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7417 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b_ref() && { 7418 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7419 } 7420 7421 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7422 FOLLY_ERASE ::apache::thrift::field_ref<const T&> b() const& { 7423 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7424 } 7425 7426 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7427 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> b() const&& { 7428 return {static_cast<const T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7429 } 7430 7431 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7432 FOLLY_ERASE ::apache::thrift::field_ref<T&> b() & { 7433 return {this->__fbthrift_field_b, __isset.at(0), __isset.bit(0)}; 7434 } 7435 7436 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_B_struct> 7437 FOLLY_ERASE ::apache::thrift::field_ref<T&&> b() && { 7438 return {static_cast<T&&>(this->__fbthrift_field_b), __isset.at(0), __isset.bit(0)}; 7439 } 7440 7441 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7442 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c_ref() const& { 7443 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7444 } 7445 7446 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7447 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c_ref() const&& { 7448 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7449 } 7450 7451 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7452 FOLLY_ERASE ::apache::thrift::field_ref<T&> c_ref() & { 7453 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7454 } 7455 7456 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7457 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c_ref() && { 7458 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7459 } 7460 7461 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7462 FOLLY_ERASE ::apache::thrift::field_ref<const T&> c() const& { 7463 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7464 } 7465 7466 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7467 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> c() const&& { 7468 return {static_cast<const T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7469 } 7470 7471 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7472 FOLLY_ERASE ::apache::thrift::field_ref<T&> c() & { 7473 return {this->__fbthrift_field_c, __isset.at(1), __isset.bit(1)}; 7474 } 7475 7476 template <typename..., typename T = ::test_cpp2::cpp_reflection::dep_C_struct> 7477 FOLLY_ERASE ::apache::thrift::field_ref<T&&> c() && { 7478 return {static_cast<T&&>(this->__fbthrift_field_c), __isset.at(1), __isset.bit(1)}; 7479 } 7480 7481 template <typename..., typename T = ::std::int32_t> 7482 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i_a_ref() const& { 7483 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7484 } 7485 7486 template <typename..., typename T = ::std::int32_t> 7487 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i_a_ref() const&& { 7488 return {static_cast<const T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7489 } 7490 7491 template <typename..., typename T = ::std::int32_t> 7492 FOLLY_ERASE ::apache::thrift::field_ref<T&> i_a_ref() & { 7493 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7494 } 7495 7496 template <typename..., typename T = ::std::int32_t> 7497 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i_a_ref() && { 7498 return {static_cast<T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7499 } 7500 7501 template <typename..., typename T = ::std::int32_t> 7502 FOLLY_ERASE ::apache::thrift::field_ref<const T&> i_a() const& { 7503 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7504 } 7505 7506 template <typename..., typename T = ::std::int32_t> 7507 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> i_a() const&& { 7508 return {static_cast<const T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7509 } 7510 7511 template <typename..., typename T = ::std::int32_t> 7512 FOLLY_ERASE ::apache::thrift::field_ref<T&> i_a() & { 7513 return {this->__fbthrift_field_i_a, __isset.at(2), __isset.bit(2)}; 7514 } 7515 7516 template <typename..., typename T = ::std::int32_t> 7517 FOLLY_ERASE ::apache::thrift::field_ref<T&&> i_a() && { 7518 return {static_cast<T&&>(this->__fbthrift_field_i_a), __isset.at(2), __isset.bit(2)}; 7519 } 7520 const ::test_cpp2::cpp_reflection::dep_B_struct& get_b() const&; 7521 ::test_cpp2::cpp_reflection::dep_B_struct get_b() &&; 7522 7523 template <typename T_dep_B_struct_b_struct_setter = ::test_cpp2::cpp_reflection::dep_B_struct> 7524 [[deprecated("Use `FOO.b_ref() = BAR;` instead of `FOO.set_b(BAR);`")]] 7525 ::test_cpp2::cpp_reflection::dep_B_struct& set_b(T_dep_B_struct_b_struct_setter&& b_) { 7526 b_ref() = std::forward<T_dep_B_struct_b_struct_setter>(b_); 7527 return __fbthrift_field_b; 7528 } 7529 const ::test_cpp2::cpp_reflection::dep_C_struct& get_c() const&; 7530 ::test_cpp2::cpp_reflection::dep_C_struct get_c() &&; 7531 7532 template <typename T_dep_B_struct_c_struct_setter = ::test_cpp2::cpp_reflection::dep_C_struct> 7533 [[deprecated("Use `FOO.c_ref() = BAR;` instead of `FOO.set_c(BAR);`")]] 7534 ::test_cpp2::cpp_reflection::dep_C_struct& set_c(T_dep_B_struct_c_struct_setter&& c_) { 7535 c_ref() = std::forward<T_dep_B_struct_c_struct_setter>(c_); 7536 return __fbthrift_field_c; 7537 } 7538 7539 ::std::int32_t get_i_a() const { 7540 return __fbthrift_field_i_a; 7541 } 7542 7543 [[deprecated("Use `FOO.i_a_ref() = BAR;` instead of `FOO.set_i_a(BAR);`")]] 7544 ::std::int32_t& set_i_a(::std::int32_t i_a_) { 7545 i_a_ref() = i_a_; 7546 return __fbthrift_field_i_a; 7547 } 7548 7549 template <class Protocol_> 7550 uint32_t read(Protocol_* iprot); 7551 template <class Protocol_> 7552 uint32_t serializedSize(Protocol_ const* prot_) const; 7553 template <class Protocol_> 7554 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 7555 template <class Protocol_> 7556 uint32_t write(Protocol_* prot_) const; 7557 7558 private: 7559 template <class Protocol_> 7560 void readNoXfer(Protocol_* iprot); 7561 7562 friend class ::apache::thrift::Cpp2Ops<dep_B_struct>; 7563 friend void swap(dep_B_struct& a, dep_B_struct& b); 7564 }; 7565 7566 template <class Protocol_> 7567 uint32_t dep_B_struct::read(Protocol_* iprot) { 7568 auto _xferStart = iprot->getCursorPosition(); 7569 readNoXfer(iprot); 7570 return iprot->getCursorPosition() - _xferStart; 7571 } 7572 7573 }} // test_cpp2::cpp_reflection 7574 namespace test_cpp2 { namespace cpp_reflection { 7575 class annotated final { 7576 private: 7577 friend struct ::apache::thrift::detail::st::struct_private_access; 7578 7579 // used by a static_assert in the corresponding source 7580 static constexpr bool __fbthrift_cpp2_gen_json = false; 7581 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7582 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7583 7584 void __fbthrift_clear(); 7585 7586 public: 7587 using __fbthrift_cpp2_type = annotated; 7588 static constexpr bool __fbthrift_cpp2_is_union = 7589 false; 7590 7591 7592 public: 7593 7594 annotated() : 7595 __fbthrift_field_a() { 7596 } 7597 // FragileConstructor for use in initialization lists only. 7598 [[deprecated("This constructor is deprecated")]] 7599 annotated(apache::thrift::FragileConstructor, ::std::int32_t a__arg); 7600 7601 annotated(annotated&&) = default; 7602 7603 annotated(const annotated&) = default; 7604 7605 7606 annotated& operator=(annotated&&) = default; 7607 7608 annotated& operator=(const annotated&) = default; 7609 private: 7610 ::std::int32_t __fbthrift_field_a; 7611 private: 7612 apache::thrift::detail::isset_bitset<1, false> __isset; 7613 7614 public: 7615 7616 bool operator==(const annotated&) const; 7617 bool operator<(const annotated&) const; 7618 7619 template <typename..., typename T = ::std::int32_t> 7620 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a_ref() const& { 7621 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 7622 } 7623 7624 template <typename..., typename T = ::std::int32_t> 7625 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a_ref() const&& { 7626 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 7627 } 7628 7629 template <typename..., typename T = ::std::int32_t> 7630 FOLLY_ERASE ::apache::thrift::field_ref<T&> a_ref() & { 7631 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 7632 } 7633 7634 template <typename..., typename T = ::std::int32_t> 7635 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a_ref() && { 7636 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 7637 } 7638 7639 template <typename..., typename T = ::std::int32_t> 7640 FOLLY_ERASE ::apache::thrift::field_ref<const T&> a() const& { 7641 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 7642 } 7643 7644 template <typename..., typename T = ::std::int32_t> 7645 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> a() const&& { 7646 return {static_cast<const T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 7647 } 7648 7649 template <typename..., typename T = ::std::int32_t> 7650 FOLLY_ERASE ::apache::thrift::field_ref<T&> a() & { 7651 return {this->__fbthrift_field_a, __isset.at(0), __isset.bit(0)}; 7652 } 7653 7654 template <typename..., typename T = ::std::int32_t> 7655 FOLLY_ERASE ::apache::thrift::field_ref<T&&> a() && { 7656 return {static_cast<T&&>(this->__fbthrift_field_a), __isset.at(0), __isset.bit(0)}; 7657 } 7658 7659 ::std::int32_t get_a() const { 7660 return __fbthrift_field_a; 7661 } 7662 7663 [[deprecated("Use `FOO.a_ref() = BAR;` instead of `FOO.set_a(BAR);`")]] 7664 ::std::int32_t& set_a(::std::int32_t a_) { 7665 a_ref() = a_; 7666 return __fbthrift_field_a; 7667 } 7668 7669 template <class Protocol_> 7670 uint32_t read(Protocol_* iprot); 7671 template <class Protocol_> 7672 uint32_t serializedSize(Protocol_ const* prot_) const; 7673 template <class Protocol_> 7674 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 7675 template <class Protocol_> 7676 uint32_t write(Protocol_* prot_) const; 7677 7678 private: 7679 template <class Protocol_> 7680 void readNoXfer(Protocol_* iprot); 7681 7682 friend class ::apache::thrift::Cpp2Ops<annotated>; 7683 friend void swap(annotated& a, annotated& b); 7684 }; 7685 7686 template <class Protocol_> 7687 uint32_t annotated::read(Protocol_* iprot) { 7688 auto _xferStart = iprot->getCursorPosition(); 7689 readNoXfer(iprot); 7690 return iprot->getCursorPosition() - _xferStart; 7691 } 7692 7693 }} // test_cpp2::cpp_reflection 7694 namespace test_cpp2 { namespace cpp_reflection { 7695 class union_with_special_names final { 7696 private: 7697 friend struct ::apache::thrift::detail::st::struct_private_access; 7698 7699 // used by a static_assert in the corresponding source 7700 static constexpr bool __fbthrift_cpp2_gen_json = false; 7701 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 7702 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 7703 7704 void __fbthrift_clear(); 7705 7706 public: 7707 using __fbthrift_cpp2_type = union_with_special_names; 7708 static constexpr bool __fbthrift_cpp2_is_union = 7709 true; 7710 7711 7712 public: 7713 enum Type : int { 7714 __EMPTY__ = 0, 7715 get = 1, 7716 getter = 2, 7717 lists = 3, 7718 maps = 4, 7719 name = 5, 7720 name_to_value = 6, 7721 names = 7, 7722 prefix_tree = 8, 7723 sets = 9, 7724 setter = 10, 7725 str = 11, 7726 strings = 12, 7727 type = 13, 7728 value = 14, 7729 value_to_name = 15, 7730 values = 16, 7731 id = 17, 7732 ids = 18, 7733 descriptor = 19, 7734 descriptors = 20, 7735 key = 21, 7736 keys = 22, 7737 annotation = 23, 7738 annotations = 24, 7739 member = 25, 7740 members = 26, 7741 field = 27, 7742 fields = 28, 7743 } ; 7744 7745 union_with_special_names() 7746 : type_(Type::__EMPTY__) {} 7747 7748 union_with_special_names(union_with_special_names&& rhs) noexcept 7749 : type_(Type::__EMPTY__) { 7750 if (this == &rhs) { return; } 7751 if (rhs.type_ == Type::__EMPTY__) { return; } 7752 switch (rhs.type_) { 7753 case Type::get: 7754 { 7755 set_get(std::move(rhs.value_.get)); 7756 break; 7757 } 7758 case Type::getter: 7759 { 7760 set_getter(std::move(rhs.value_.getter)); 7761 break; 7762 } 7763 case Type::lists: 7764 { 7765 set_lists(std::move(rhs.value_.lists)); 7766 break; 7767 } 7768 case Type::maps: 7769 { 7770 set_maps(std::move(rhs.value_.maps)); 7771 break; 7772 } 7773 case Type::name: 7774 { 7775 set_name(std::move(rhs.value_.name)); 7776 break; 7777 } 7778 case Type::name_to_value: 7779 { 7780 set_name_to_value(std::move(rhs.value_.name_to_value)); 7781 break; 7782 } 7783 case Type::names: 7784 { 7785 set_names(std::move(rhs.value_.names)); 7786 break; 7787 } 7788 case Type::prefix_tree: 7789 { 7790 set_prefix_tree(std::move(rhs.value_.prefix_tree)); 7791 break; 7792 } 7793 case Type::sets: 7794 { 7795 set_sets(std::move(rhs.value_.sets)); 7796 break; 7797 } 7798 case Type::setter: 7799 { 7800 set_setter(std::move(rhs.value_.setter)); 7801 break; 7802 } 7803 case Type::str: 7804 { 7805 set_str(std::move(rhs.value_.str)); 7806 break; 7807 } 7808 case Type::strings: 7809 { 7810 set_strings(std::move(rhs.value_.strings)); 7811 break; 7812 } 7813 case Type::type: 7814 { 7815 set_type(std::move(rhs.value_.type)); 7816 break; 7817 } 7818 case Type::value: 7819 { 7820 set_value(std::move(rhs.value_.value)); 7821 break; 7822 } 7823 case Type::value_to_name: 7824 { 7825 set_value_to_name(std::move(rhs.value_.value_to_name)); 7826 break; 7827 } 7828 case Type::values: 7829 { 7830 set_values(std::move(rhs.value_.values)); 7831 break; 7832 } 7833 case Type::id: 7834 { 7835 set_id(std::move(rhs.value_.id)); 7836 break; 7837 } 7838 case Type::ids: 7839 { 7840 set_ids(std::move(rhs.value_.ids)); 7841 break; 7842 } 7843 case Type::descriptor: 7844 { 7845 set_descriptor(std::move(rhs.value_.descriptor)); 7846 break; 7847 } 7848 case Type::descriptors: 7849 { 7850 set_descriptors(std::move(rhs.value_.descriptors)); 7851 break; 7852 } 7853 case Type::key: 7854 { 7855 set_key(std::move(rhs.value_.key)); 7856 break; 7857 } 7858 case Type::keys: 7859 { 7860 set_keys(std::move(rhs.value_.keys)); 7861 break; 7862 } 7863 case Type::annotation: 7864 { 7865 set_annotation(std::move(rhs.value_.annotation)); 7866 break; 7867 } 7868 case Type::annotations: 7869 { 7870 set_annotations(std::move(rhs.value_.annotations)); 7871 break; 7872 } 7873 case Type::member: 7874 { 7875 set_member(std::move(rhs.value_.member)); 7876 break; 7877 } 7878 case Type::members: 7879 { 7880 set_members(std::move(rhs.value_.members)); 7881 break; 7882 } 7883 case Type::field: 7884 { 7885 set_field(std::move(rhs.value_.field)); 7886 break; 7887 } 7888 case Type::fields: 7889 { 7890 set_fields(std::move(rhs.value_.fields)); 7891 break; 7892 } 7893 default: 7894 { 7895 assert(false); 7896 break; 7897 } 7898 } 7899 apache::thrift::clear(rhs); 7900 } 7901 7902 union_with_special_names(const union_with_special_names& rhs) 7903 : type_(Type::__EMPTY__) { 7904 if (this == &rhs) { return; } 7905 if (rhs.type_ == Type::__EMPTY__) { return; } 7906 switch (rhs.type_) { 7907 case Type::get: 7908 { 7909 set_get(rhs.value_.get); 7910 break; 7911 } 7912 case Type::getter: 7913 { 7914 set_getter(rhs.value_.getter); 7915 break; 7916 } 7917 case Type::lists: 7918 { 7919 set_lists(rhs.value_.lists); 7920 break; 7921 } 7922 case Type::maps: 7923 { 7924 set_maps(rhs.value_.maps); 7925 break; 7926 } 7927 case Type::name: 7928 { 7929 set_name(rhs.value_.name); 7930 break; 7931 } 7932 case Type::name_to_value: 7933 { 7934 set_name_to_value(rhs.value_.name_to_value); 7935 break; 7936 } 7937 case Type::names: 7938 { 7939 set_names(rhs.value_.names); 7940 break; 7941 } 7942 case Type::prefix_tree: 7943 { 7944 set_prefix_tree(rhs.value_.prefix_tree); 7945 break; 7946 } 7947 case Type::sets: 7948 { 7949 set_sets(rhs.value_.sets); 7950 break; 7951 } 7952 case Type::setter: 7953 { 7954 set_setter(rhs.value_.setter); 7955 break; 7956 } 7957 case Type::str: 7958 { 7959 set_str(rhs.value_.str); 7960 break; 7961 } 7962 case Type::strings: 7963 { 7964 set_strings(rhs.value_.strings); 7965 break; 7966 } 7967 case Type::type: 7968 { 7969 set_type(rhs.value_.type); 7970 break; 7971 } 7972 case Type::value: 7973 { 7974 set_value(rhs.value_.value); 7975 break; 7976 } 7977 case Type::value_to_name: 7978 { 7979 set_value_to_name(rhs.value_.value_to_name); 7980 break; 7981 } 7982 case Type::values: 7983 { 7984 set_values(rhs.value_.values); 7985 break; 7986 } 7987 case Type::id: 7988 { 7989 set_id(rhs.value_.id); 7990 break; 7991 } 7992 case Type::ids: 7993 { 7994 set_ids(rhs.value_.ids); 7995 break; 7996 } 7997 case Type::descriptor: 7998 { 7999 set_descriptor(rhs.value_.descriptor); 8000 break; 8001 } 8002 case Type::descriptors: 8003 { 8004 set_descriptors(rhs.value_.descriptors); 8005 break; 8006 } 8007 case Type::key: 8008 { 8009 set_key(rhs.value_.key); 8010 break; 8011 } 8012 case Type::keys: 8013 { 8014 set_keys(rhs.value_.keys); 8015 break; 8016 } 8017 case Type::annotation: 8018 { 8019 set_annotation(rhs.value_.annotation); 8020 break; 8021 } 8022 case Type::annotations: 8023 { 8024 set_annotations(rhs.value_.annotations); 8025 break; 8026 } 8027 case Type::member: 8028 { 8029 set_member(rhs.value_.member); 8030 break; 8031 } 8032 case Type::members: 8033 { 8034 set_members(rhs.value_.members); 8035 break; 8036 } 8037 case Type::field: 8038 { 8039 set_field(rhs.value_.field); 8040 break; 8041 } 8042 case Type::fields: 8043 { 8044 set_fields(rhs.value_.fields); 8045 break; 8046 } 8047 default: 8048 { 8049 assert(false); 8050 break; 8051 } 8052 } 8053 } 8054 8055 union_with_special_names& operator=(union_with_special_names&& rhs) noexcept { 8056 if (this == &rhs) { return *this; } 8057 __fbthrift_clear(); 8058 if (rhs.type_ == Type::__EMPTY__) { return *this; } 8059 switch (rhs.type_) { 8060 case Type::get: 8061 { 8062 set_get(std::move(rhs.value_.get)); 8063 break; 8064 } 8065 case Type::getter: 8066 { 8067 set_getter(std::move(rhs.value_.getter)); 8068 break; 8069 } 8070 case Type::lists: 8071 { 8072 set_lists(std::move(rhs.value_.lists)); 8073 break; 8074 } 8075 case Type::maps: 8076 { 8077 set_maps(std::move(rhs.value_.maps)); 8078 break; 8079 } 8080 case Type::name: 8081 { 8082 set_name(std::move(rhs.value_.name)); 8083 break; 8084 } 8085 case Type::name_to_value: 8086 { 8087 set_name_to_value(std::move(rhs.value_.name_to_value)); 8088 break; 8089 } 8090 case Type::names: 8091 { 8092 set_names(std::move(rhs.value_.names)); 8093 break; 8094 } 8095 case Type::prefix_tree: 8096 { 8097 set_prefix_tree(std::move(rhs.value_.prefix_tree)); 8098 break; 8099 } 8100 case Type::sets: 8101 { 8102 set_sets(std::move(rhs.value_.sets)); 8103 break; 8104 } 8105 case Type::setter: 8106 { 8107 set_setter(std::move(rhs.value_.setter)); 8108 break; 8109 } 8110 case Type::str: 8111 { 8112 set_str(std::move(rhs.value_.str)); 8113 break; 8114 } 8115 case Type::strings: 8116 { 8117 set_strings(std::move(rhs.value_.strings)); 8118 break; 8119 } 8120 case Type::type: 8121 { 8122 set_type(std::move(rhs.value_.type)); 8123 break; 8124 } 8125 case Type::value: 8126 { 8127 set_value(std::move(rhs.value_.value)); 8128 break; 8129 } 8130 case Type::value_to_name: 8131 { 8132 set_value_to_name(std::move(rhs.value_.value_to_name)); 8133 break; 8134 } 8135 case Type::values: 8136 { 8137 set_values(std::move(rhs.value_.values)); 8138 break; 8139 } 8140 case Type::id: 8141 { 8142 set_id(std::move(rhs.value_.id)); 8143 break; 8144 } 8145 case Type::ids: 8146 { 8147 set_ids(std::move(rhs.value_.ids)); 8148 break; 8149 } 8150 case Type::descriptor: 8151 { 8152 set_descriptor(std::move(rhs.value_.descriptor)); 8153 break; 8154 } 8155 case Type::descriptors: 8156 { 8157 set_descriptors(std::move(rhs.value_.descriptors)); 8158 break; 8159 } 8160 case Type::key: 8161 { 8162 set_key(std::move(rhs.value_.key)); 8163 break; 8164 } 8165 case Type::keys: 8166 { 8167 set_keys(std::move(rhs.value_.keys)); 8168 break; 8169 } 8170 case Type::annotation: 8171 { 8172 set_annotation(std::move(rhs.value_.annotation)); 8173 break; 8174 } 8175 case Type::annotations: 8176 { 8177 set_annotations(std::move(rhs.value_.annotations)); 8178 break; 8179 } 8180 case Type::member: 8181 { 8182 set_member(std::move(rhs.value_.member)); 8183 break; 8184 } 8185 case Type::members: 8186 { 8187 set_members(std::move(rhs.value_.members)); 8188 break; 8189 } 8190 case Type::field: 8191 { 8192 set_field(std::move(rhs.value_.field)); 8193 break; 8194 } 8195 case Type::fields: 8196 { 8197 set_fields(std::move(rhs.value_.fields)); 8198 break; 8199 } 8200 default: 8201 { 8202 assert(false); 8203 break; 8204 } 8205 } 8206 apache::thrift::clear(rhs); 8207 return *this; 8208 } 8209 8210 union_with_special_names& operator=(const union_with_special_names& rhs) { 8211 if (this == &rhs) { return *this; } 8212 __fbthrift_clear(); 8213 if (rhs.type_ == Type::__EMPTY__) { return *this; } 8214 switch (rhs.type_) { 8215 case Type::get: 8216 { 8217 set_get(rhs.value_.get); 8218 break; 8219 } 8220 case Type::getter: 8221 { 8222 set_getter(rhs.value_.getter); 8223 break; 8224 } 8225 case Type::lists: 8226 { 8227 set_lists(rhs.value_.lists); 8228 break; 8229 } 8230 case Type::maps: 8231 { 8232 set_maps(rhs.value_.maps); 8233 break; 8234 } 8235 case Type::name: 8236 { 8237 set_name(rhs.value_.name); 8238 break; 8239 } 8240 case Type::name_to_value: 8241 { 8242 set_name_to_value(rhs.value_.name_to_value); 8243 break; 8244 } 8245 case Type::names: 8246 { 8247 set_names(rhs.value_.names); 8248 break; 8249 } 8250 case Type::prefix_tree: 8251 { 8252 set_prefix_tree(rhs.value_.prefix_tree); 8253 break; 8254 } 8255 case Type::sets: 8256 { 8257 set_sets(rhs.value_.sets); 8258 break; 8259 } 8260 case Type::setter: 8261 { 8262 set_setter(rhs.value_.setter); 8263 break; 8264 } 8265 case Type::str: 8266 { 8267 set_str(rhs.value_.str); 8268 break; 8269 } 8270 case Type::strings: 8271 { 8272 set_strings(rhs.value_.strings); 8273 break; 8274 } 8275 case Type::type: 8276 { 8277 set_type(rhs.value_.type); 8278 break; 8279 } 8280 case Type::value: 8281 { 8282 set_value(rhs.value_.value); 8283 break; 8284 } 8285 case Type::value_to_name: 8286 { 8287 set_value_to_name(rhs.value_.value_to_name); 8288 break; 8289 } 8290 case Type::values: 8291 { 8292 set_values(rhs.value_.values); 8293 break; 8294 } 8295 case Type::id: 8296 { 8297 set_id(rhs.value_.id); 8298 break; 8299 } 8300 case Type::ids: 8301 { 8302 set_ids(rhs.value_.ids); 8303 break; 8304 } 8305 case Type::descriptor: 8306 { 8307 set_descriptor(rhs.value_.descriptor); 8308 break; 8309 } 8310 case Type::descriptors: 8311 { 8312 set_descriptors(rhs.value_.descriptors); 8313 break; 8314 } 8315 case Type::key: 8316 { 8317 set_key(rhs.value_.key); 8318 break; 8319 } 8320 case Type::keys: 8321 { 8322 set_keys(rhs.value_.keys); 8323 break; 8324 } 8325 case Type::annotation: 8326 { 8327 set_annotation(rhs.value_.annotation); 8328 break; 8329 } 8330 case Type::annotations: 8331 { 8332 set_annotations(rhs.value_.annotations); 8333 break; 8334 } 8335 case Type::member: 8336 { 8337 set_member(rhs.value_.member); 8338 break; 8339 } 8340 case Type::members: 8341 { 8342 set_members(rhs.value_.members); 8343 break; 8344 } 8345 case Type::field: 8346 { 8347 set_field(rhs.value_.field); 8348 break; 8349 } 8350 case Type::fields: 8351 { 8352 set_fields(rhs.value_.fields); 8353 break; 8354 } 8355 default: 8356 { 8357 assert(false); 8358 break; 8359 } 8360 } 8361 return *this; 8362 } 8363 8364 ~union_with_special_names() { 8365 apache::thrift::clear(*this); 8366 } 8367 union storage_type { 8368 ::std::int32_t get; 8369 ::std::int32_t getter; 8370 ::std::int32_t lists; 8371 ::std::int32_t maps; 8372 ::std::int32_t name; 8373 ::std::int32_t name_to_value; 8374 ::std::int32_t names; 8375 ::std::int32_t prefix_tree; 8376 ::std::int32_t sets; 8377 ::std::int32_t setter; 8378 ::std::int32_t str; 8379 ::std::int32_t strings; 8380 ::std::int32_t type; 8381 ::std::int32_t value; 8382 ::std::int32_t value_to_name; 8383 ::std::int32_t values; 8384 ::std::int32_t id; 8385 ::std::int32_t ids; 8386 ::std::int32_t descriptor; 8387 ::std::int32_t descriptors; 8388 ::std::int32_t key; 8389 ::std::int32_t keys; 8390 ::std::int32_t annotation; 8391 ::std::int32_t annotations; 8392 ::std::int32_t member; 8393 ::std::int32_t members; 8394 ::std::int32_t field; 8395 ::std::int32_t fields; 8396 8397 storage_type() {} 8398 ~storage_type() {} 8399 } ; 8400 8401 bool operator==(const union_with_special_names&) const; 8402 bool operator<(const union_with_special_names&) const; 8403 8404 ::std::int32_t& set_get(::std::int32_t t = ::std::int32_t()) { 8405 __fbthrift_clear(); 8406 type_ = Type::get; 8407 ::new (std::addressof(value_.get)) ::std::int32_t(t); 8408 return value_.get; 8409 } 8410 8411 ::std::int32_t& set_getter(::std::int32_t t = ::std::int32_t()) { 8412 __fbthrift_clear(); 8413 type_ = Type::getter; 8414 ::new (std::addressof(value_.getter)) ::std::int32_t(t); 8415 return value_.getter; 8416 } 8417 8418 ::std::int32_t& set_lists(::std::int32_t t = ::std::int32_t()) { 8419 __fbthrift_clear(); 8420 type_ = Type::lists; 8421 ::new (std::addressof(value_.lists)) ::std::int32_t(t); 8422 return value_.lists; 8423 } 8424 8425 ::std::int32_t& set_maps(::std::int32_t t = ::std::int32_t()) { 8426 __fbthrift_clear(); 8427 type_ = Type::maps; 8428 ::new (std::addressof(value_.maps)) ::std::int32_t(t); 8429 return value_.maps; 8430 } 8431 8432 ::std::int32_t& set_name(::std::int32_t t = ::std::int32_t()) { 8433 __fbthrift_clear(); 8434 type_ = Type::name; 8435 ::new (std::addressof(value_.name)) ::std::int32_t(t); 8436 return value_.name; 8437 } 8438 8439 ::std::int32_t& set_name_to_value(::std::int32_t t = ::std::int32_t()) { 8440 __fbthrift_clear(); 8441 type_ = Type::name_to_value; 8442 ::new (std::addressof(value_.name_to_value)) ::std::int32_t(t); 8443 return value_.name_to_value; 8444 } 8445 8446 ::std::int32_t& set_names(::std::int32_t t = ::std::int32_t()) { 8447 __fbthrift_clear(); 8448 type_ = Type::names; 8449 ::new (std::addressof(value_.names)) ::std::int32_t(t); 8450 return value_.names; 8451 } 8452 8453 ::std::int32_t& set_prefix_tree(::std::int32_t t = ::std::int32_t()) { 8454 __fbthrift_clear(); 8455 type_ = Type::prefix_tree; 8456 ::new (std::addressof(value_.prefix_tree)) ::std::int32_t(t); 8457 return value_.prefix_tree; 8458 } 8459 8460 ::std::int32_t& set_sets(::std::int32_t t = ::std::int32_t()) { 8461 __fbthrift_clear(); 8462 type_ = Type::sets; 8463 ::new (std::addressof(value_.sets)) ::std::int32_t(t); 8464 return value_.sets; 8465 } 8466 8467 ::std::int32_t& set_setter(::std::int32_t t = ::std::int32_t()) { 8468 __fbthrift_clear(); 8469 type_ = Type::setter; 8470 ::new (std::addressof(value_.setter)) ::std::int32_t(t); 8471 return value_.setter; 8472 } 8473 8474 ::std::int32_t& set_str(::std::int32_t t = ::std::int32_t()) { 8475 __fbthrift_clear(); 8476 type_ = Type::str; 8477 ::new (std::addressof(value_.str)) ::std::int32_t(t); 8478 return value_.str; 8479 } 8480 8481 ::std::int32_t& set_strings(::std::int32_t t = ::std::int32_t()) { 8482 __fbthrift_clear(); 8483 type_ = Type::strings; 8484 ::new (std::addressof(value_.strings)) ::std::int32_t(t); 8485 return value_.strings; 8486 } 8487 8488 ::std::int32_t& set_type(::std::int32_t t = ::std::int32_t()) { 8489 __fbthrift_clear(); 8490 type_ = Type::type; 8491 ::new (std::addressof(value_.type)) ::std::int32_t(t); 8492 return value_.type; 8493 } 8494 8495 ::std::int32_t& set_value(::std::int32_t t = ::std::int32_t()) { 8496 __fbthrift_clear(); 8497 type_ = Type::value; 8498 ::new (std::addressof(value_.value)) ::std::int32_t(t); 8499 return value_.value; 8500 } 8501 8502 ::std::int32_t& set_value_to_name(::std::int32_t t = ::std::int32_t()) { 8503 __fbthrift_clear(); 8504 type_ = Type::value_to_name; 8505 ::new (std::addressof(value_.value_to_name)) ::std::int32_t(t); 8506 return value_.value_to_name; 8507 } 8508 8509 ::std::int32_t& set_values(::std::int32_t t = ::std::int32_t()) { 8510 __fbthrift_clear(); 8511 type_ = Type::values; 8512 ::new (std::addressof(value_.values)) ::std::int32_t(t); 8513 return value_.values; 8514 } 8515 8516 ::std::int32_t& set_id(::std::int32_t t = ::std::int32_t()) { 8517 __fbthrift_clear(); 8518 type_ = Type::id; 8519 ::new (std::addressof(value_.id)) ::std::int32_t(t); 8520 return value_.id; 8521 } 8522 8523 ::std::int32_t& set_ids(::std::int32_t t = ::std::int32_t()) { 8524 __fbthrift_clear(); 8525 type_ = Type::ids; 8526 ::new (std::addressof(value_.ids)) ::std::int32_t(t); 8527 return value_.ids; 8528 } 8529 8530 ::std::int32_t& set_descriptor(::std::int32_t t = ::std::int32_t()) { 8531 __fbthrift_clear(); 8532 type_ = Type::descriptor; 8533 ::new (std::addressof(value_.descriptor)) ::std::int32_t(t); 8534 return value_.descriptor; 8535 } 8536 8537 ::std::int32_t& set_descriptors(::std::int32_t t = ::std::int32_t()) { 8538 __fbthrift_clear(); 8539 type_ = Type::descriptors; 8540 ::new (std::addressof(value_.descriptors)) ::std::int32_t(t); 8541 return value_.descriptors; 8542 } 8543 8544 ::std::int32_t& set_key(::std::int32_t t = ::std::int32_t()) { 8545 __fbthrift_clear(); 8546 type_ = Type::key; 8547 ::new (std::addressof(value_.key)) ::std::int32_t(t); 8548 return value_.key; 8549 } 8550 8551 ::std::int32_t& set_keys(::std::int32_t t = ::std::int32_t()) { 8552 __fbthrift_clear(); 8553 type_ = Type::keys; 8554 ::new (std::addressof(value_.keys)) ::std::int32_t(t); 8555 return value_.keys; 8556 } 8557 8558 ::std::int32_t& set_annotation(::std::int32_t t = ::std::int32_t()) { 8559 __fbthrift_clear(); 8560 type_ = Type::annotation; 8561 ::new (std::addressof(value_.annotation)) ::std::int32_t(t); 8562 return value_.annotation; 8563 } 8564 8565 ::std::int32_t& set_annotations(::std::int32_t t = ::std::int32_t()) { 8566 __fbthrift_clear(); 8567 type_ = Type::annotations; 8568 ::new (std::addressof(value_.annotations)) ::std::int32_t(t); 8569 return value_.annotations; 8570 } 8571 8572 ::std::int32_t& set_member(::std::int32_t t = ::std::int32_t()) { 8573 __fbthrift_clear(); 8574 type_ = Type::member; 8575 ::new (std::addressof(value_.member)) ::std::int32_t(t); 8576 return value_.member; 8577 } 8578 8579 ::std::int32_t& set_members(::std::int32_t t = ::std::int32_t()) { 8580 __fbthrift_clear(); 8581 type_ = Type::members; 8582 ::new (std::addressof(value_.members)) ::std::int32_t(t); 8583 return value_.members; 8584 } 8585 8586 ::std::int32_t& set_field(::std::int32_t t = ::std::int32_t()) { 8587 __fbthrift_clear(); 8588 type_ = Type::field; 8589 ::new (std::addressof(value_.field)) ::std::int32_t(t); 8590 return value_.field; 8591 } 8592 8593 ::std::int32_t& set_fields(::std::int32_t t = ::std::int32_t()) { 8594 __fbthrift_clear(); 8595 type_ = Type::fields; 8596 ::new (std::addressof(value_.fields)) ::std::int32_t(t); 8597 return value_.fields; 8598 } 8599 8600 ::std::int32_t const& get_get() const { 8601 if (type_ != Type::get) { 8602 ::apache::thrift::detail::throw_on_bad_field_access(); 8603 } 8604 return value_.get; 8605 } 8606 8607 ::std::int32_t const& get_getter() const { 8608 if (type_ != Type::getter) { 8609 ::apache::thrift::detail::throw_on_bad_field_access(); 8610 } 8611 return value_.getter; 8612 } 8613 8614 ::std::int32_t const& get_lists() const { 8615 if (type_ != Type::lists) { 8616 ::apache::thrift::detail::throw_on_bad_field_access(); 8617 } 8618 return value_.lists; 8619 } 8620 8621 ::std::int32_t const& get_maps() const { 8622 if (type_ != Type::maps) { 8623 ::apache::thrift::detail::throw_on_bad_field_access(); 8624 } 8625 return value_.maps; 8626 } 8627 8628 ::std::int32_t const& get_name() const { 8629 if (type_ != Type::name) { 8630 ::apache::thrift::detail::throw_on_bad_field_access(); 8631 } 8632 return value_.name; 8633 } 8634 8635 ::std::int32_t const& get_name_to_value() const { 8636 if (type_ != Type::name_to_value) { 8637 ::apache::thrift::detail::throw_on_bad_field_access(); 8638 } 8639 return value_.name_to_value; 8640 } 8641 8642 ::std::int32_t const& get_names() const { 8643 if (type_ != Type::names) { 8644 ::apache::thrift::detail::throw_on_bad_field_access(); 8645 } 8646 return value_.names; 8647 } 8648 8649 ::std::int32_t const& get_prefix_tree() const { 8650 if (type_ != Type::prefix_tree) { 8651 ::apache::thrift::detail::throw_on_bad_field_access(); 8652 } 8653 return value_.prefix_tree; 8654 } 8655 8656 ::std::int32_t const& get_sets() const { 8657 if (type_ != Type::sets) { 8658 ::apache::thrift::detail::throw_on_bad_field_access(); 8659 } 8660 return value_.sets; 8661 } 8662 8663 ::std::int32_t const& get_setter() const { 8664 if (type_ != Type::setter) { 8665 ::apache::thrift::detail::throw_on_bad_field_access(); 8666 } 8667 return value_.setter; 8668 } 8669 8670 ::std::int32_t const& get_str() const { 8671 if (type_ != Type::str) { 8672 ::apache::thrift::detail::throw_on_bad_field_access(); 8673 } 8674 return value_.str; 8675 } 8676 8677 ::std::int32_t const& get_strings() const { 8678 if (type_ != Type::strings) { 8679 ::apache::thrift::detail::throw_on_bad_field_access(); 8680 } 8681 return value_.strings; 8682 } 8683 8684 ::std::int32_t const& get_type() const { 8685 if (type_ != Type::type) { 8686 ::apache::thrift::detail::throw_on_bad_field_access(); 8687 } 8688 return value_.type; 8689 } 8690 8691 ::std::int32_t const& get_value() const { 8692 if (type_ != Type::value) { 8693 ::apache::thrift::detail::throw_on_bad_field_access(); 8694 } 8695 return value_.value; 8696 } 8697 8698 ::std::int32_t const& get_value_to_name() const { 8699 if (type_ != Type::value_to_name) { 8700 ::apache::thrift::detail::throw_on_bad_field_access(); 8701 } 8702 return value_.value_to_name; 8703 } 8704 8705 ::std::int32_t const& get_values() const { 8706 if (type_ != Type::values) { 8707 ::apache::thrift::detail::throw_on_bad_field_access(); 8708 } 8709 return value_.values; 8710 } 8711 8712 ::std::int32_t const& get_id() const { 8713 if (type_ != Type::id) { 8714 ::apache::thrift::detail::throw_on_bad_field_access(); 8715 } 8716 return value_.id; 8717 } 8718 8719 ::std::int32_t const& get_ids() const { 8720 if (type_ != Type::ids) { 8721 ::apache::thrift::detail::throw_on_bad_field_access(); 8722 } 8723 return value_.ids; 8724 } 8725 8726 ::std::int32_t const& get_descriptor() const { 8727 if (type_ != Type::descriptor) { 8728 ::apache::thrift::detail::throw_on_bad_field_access(); 8729 } 8730 return value_.descriptor; 8731 } 8732 8733 ::std::int32_t const& get_descriptors() const { 8734 if (type_ != Type::descriptors) { 8735 ::apache::thrift::detail::throw_on_bad_field_access(); 8736 } 8737 return value_.descriptors; 8738 } 8739 8740 ::std::int32_t const& get_key() const { 8741 if (type_ != Type::key) { 8742 ::apache::thrift::detail::throw_on_bad_field_access(); 8743 } 8744 return value_.key; 8745 } 8746 8747 ::std::int32_t const& get_keys() const { 8748 if (type_ != Type::keys) { 8749 ::apache::thrift::detail::throw_on_bad_field_access(); 8750 } 8751 return value_.keys; 8752 } 8753 8754 ::std::int32_t const& get_annotation() const { 8755 if (type_ != Type::annotation) { 8756 ::apache::thrift::detail::throw_on_bad_field_access(); 8757 } 8758 return value_.annotation; 8759 } 8760 8761 ::std::int32_t const& get_annotations() const { 8762 if (type_ != Type::annotations) { 8763 ::apache::thrift::detail::throw_on_bad_field_access(); 8764 } 8765 return value_.annotations; 8766 } 8767 8768 ::std::int32_t const& get_member() const { 8769 if (type_ != Type::member) { 8770 ::apache::thrift::detail::throw_on_bad_field_access(); 8771 } 8772 return value_.member; 8773 } 8774 8775 ::std::int32_t const& get_members() const { 8776 if (type_ != Type::members) { 8777 ::apache::thrift::detail::throw_on_bad_field_access(); 8778 } 8779 return value_.members; 8780 } 8781 8782 ::std::int32_t const& get_field() const { 8783 if (type_ != Type::field) { 8784 ::apache::thrift::detail::throw_on_bad_field_access(); 8785 } 8786 return value_.field; 8787 } 8788 8789 ::std::int32_t const& get_fields() const { 8790 if (type_ != Type::fields) { 8791 ::apache::thrift::detail::throw_on_bad_field_access(); 8792 } 8793 return value_.fields; 8794 } 8795 8796 ::std::int32_t& mutable_get() { 8797 assert(type_ == Type::get); 8798 return value_.get; 8799 } 8800 8801 ::std::int32_t& mutable_getter() { 8802 assert(type_ == Type::getter); 8803 return value_.getter; 8804 } 8805 8806 ::std::int32_t& mutable_lists() { 8807 assert(type_ == Type::lists); 8808 return value_.lists; 8809 } 8810 8811 ::std::int32_t& mutable_maps() { 8812 assert(type_ == Type::maps); 8813 return value_.maps; 8814 } 8815 8816 ::std::int32_t& mutable_name() { 8817 assert(type_ == Type::name); 8818 return value_.name; 8819 } 8820 8821 ::std::int32_t& mutable_name_to_value() { 8822 assert(type_ == Type::name_to_value); 8823 return value_.name_to_value; 8824 } 8825 8826 ::std::int32_t& mutable_names() { 8827 assert(type_ == Type::names); 8828 return value_.names; 8829 } 8830 8831 ::std::int32_t& mutable_prefix_tree() { 8832 assert(type_ == Type::prefix_tree); 8833 return value_.prefix_tree; 8834 } 8835 8836 ::std::int32_t& mutable_sets() { 8837 assert(type_ == Type::sets); 8838 return value_.sets; 8839 } 8840 8841 ::std::int32_t& mutable_setter() { 8842 assert(type_ == Type::setter); 8843 return value_.setter; 8844 } 8845 8846 ::std::int32_t& mutable_str() { 8847 assert(type_ == Type::str); 8848 return value_.str; 8849 } 8850 8851 ::std::int32_t& mutable_strings() { 8852 assert(type_ == Type::strings); 8853 return value_.strings; 8854 } 8855 8856 ::std::int32_t& mutable_type() { 8857 assert(type_ == Type::type); 8858 return value_.type; 8859 } 8860 8861 ::std::int32_t& mutable_value() { 8862 assert(type_ == Type::value); 8863 return value_.value; 8864 } 8865 8866 ::std::int32_t& mutable_value_to_name() { 8867 assert(type_ == Type::value_to_name); 8868 return value_.value_to_name; 8869 } 8870 8871 ::std::int32_t& mutable_values() { 8872 assert(type_ == Type::values); 8873 return value_.values; 8874 } 8875 8876 ::std::int32_t& mutable_id() { 8877 assert(type_ == Type::id); 8878 return value_.id; 8879 } 8880 8881 ::std::int32_t& mutable_ids() { 8882 assert(type_ == Type::ids); 8883 return value_.ids; 8884 } 8885 8886 ::std::int32_t& mutable_descriptor() { 8887 assert(type_ == Type::descriptor); 8888 return value_.descriptor; 8889 } 8890 8891 ::std::int32_t& mutable_descriptors() { 8892 assert(type_ == Type::descriptors); 8893 return value_.descriptors; 8894 } 8895 8896 ::std::int32_t& mutable_key() { 8897 assert(type_ == Type::key); 8898 return value_.key; 8899 } 8900 8901 ::std::int32_t& mutable_keys() { 8902 assert(type_ == Type::keys); 8903 return value_.keys; 8904 } 8905 8906 ::std::int32_t& mutable_annotation() { 8907 assert(type_ == Type::annotation); 8908 return value_.annotation; 8909 } 8910 8911 ::std::int32_t& mutable_annotations() { 8912 assert(type_ == Type::annotations); 8913 return value_.annotations; 8914 } 8915 8916 ::std::int32_t& mutable_member() { 8917 assert(type_ == Type::member); 8918 return value_.member; 8919 } 8920 8921 ::std::int32_t& mutable_members() { 8922 assert(type_ == Type::members); 8923 return value_.members; 8924 } 8925 8926 ::std::int32_t& mutable_field() { 8927 assert(type_ == Type::field); 8928 return value_.field; 8929 } 8930 8931 ::std::int32_t& mutable_fields() { 8932 assert(type_ == Type::fields); 8933 return value_.fields; 8934 } 8935 8936 ::std::int32_t move_get() { 8937 assert(type_ == Type::get); 8938 return std::move(value_.get); 8939 } 8940 8941 ::std::int32_t move_getter() { 8942 assert(type_ == Type::getter); 8943 return std::move(value_.getter); 8944 } 8945 8946 ::std::int32_t move_lists() { 8947 assert(type_ == Type::lists); 8948 return std::move(value_.lists); 8949 } 8950 8951 ::std::int32_t move_maps() { 8952 assert(type_ == Type::maps); 8953 return std::move(value_.maps); 8954 } 8955 8956 ::std::int32_t move_name() { 8957 assert(type_ == Type::name); 8958 return std::move(value_.name); 8959 } 8960 8961 ::std::int32_t move_name_to_value() { 8962 assert(type_ == Type::name_to_value); 8963 return std::move(value_.name_to_value); 8964 } 8965 8966 ::std::int32_t move_names() { 8967 assert(type_ == Type::names); 8968 return std::move(value_.names); 8969 } 8970 8971 ::std::int32_t move_prefix_tree() { 8972 assert(type_ == Type::prefix_tree); 8973 return std::move(value_.prefix_tree); 8974 } 8975 8976 ::std::int32_t move_sets() { 8977 assert(type_ == Type::sets); 8978 return std::move(value_.sets); 8979 } 8980 8981 ::std::int32_t move_setter() { 8982 assert(type_ == Type::setter); 8983 return std::move(value_.setter); 8984 } 8985 8986 ::std::int32_t move_str() { 8987 assert(type_ == Type::str); 8988 return std::move(value_.str); 8989 } 8990 8991 ::std::int32_t move_strings() { 8992 assert(type_ == Type::strings); 8993 return std::move(value_.strings); 8994 } 8995 8996 ::std::int32_t move_type() { 8997 assert(type_ == Type::type); 8998 return std::move(value_.type); 8999 } 9000 9001 ::std::int32_t move_value() { 9002 assert(type_ == Type::value); 9003 return std::move(value_.value); 9004 } 9005 9006 ::std::int32_t move_value_to_name() { 9007 assert(type_ == Type::value_to_name); 9008 return std::move(value_.value_to_name); 9009 } 9010 9011 ::std::int32_t move_values() { 9012 assert(type_ == Type::values); 9013 return std::move(value_.values); 9014 } 9015 9016 ::std::int32_t move_id() { 9017 assert(type_ == Type::id); 9018 return std::move(value_.id); 9019 } 9020 9021 ::std::int32_t move_ids() { 9022 assert(type_ == Type::ids); 9023 return std::move(value_.ids); 9024 } 9025 9026 ::std::int32_t move_descriptor() { 9027 assert(type_ == Type::descriptor); 9028 return std::move(value_.descriptor); 9029 } 9030 9031 ::std::int32_t move_descriptors() { 9032 assert(type_ == Type::descriptors); 9033 return std::move(value_.descriptors); 9034 } 9035 9036 ::std::int32_t move_key() { 9037 assert(type_ == Type::key); 9038 return std::move(value_.key); 9039 } 9040 9041 ::std::int32_t move_keys() { 9042 assert(type_ == Type::keys); 9043 return std::move(value_.keys); 9044 } 9045 9046 ::std::int32_t move_annotation() { 9047 assert(type_ == Type::annotation); 9048 return std::move(value_.annotation); 9049 } 9050 9051 ::std::int32_t move_annotations() { 9052 assert(type_ == Type::annotations); 9053 return std::move(value_.annotations); 9054 } 9055 9056 ::std::int32_t move_member() { 9057 assert(type_ == Type::member); 9058 return std::move(value_.member); 9059 } 9060 9061 ::std::int32_t move_members() { 9062 assert(type_ == Type::members); 9063 return std::move(value_.members); 9064 } 9065 9066 ::std::int32_t move_field() { 9067 assert(type_ == Type::field); 9068 return std::move(value_.field); 9069 } 9070 9071 ::std::int32_t move_fields() { 9072 assert(type_ == Type::fields); 9073 return std::move(value_.fields); 9074 } 9075 9076 template <typename..., typename T = ::std::int32_t> 9077 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> get_ref() const& { 9078 return {value_.get, type_, get, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9079 } 9080 9081 template <typename..., typename T = ::std::int32_t> 9082 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> get_ref() const&& { 9083 return {std::move(value_.get), type_, get, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9084 } 9085 9086 template <typename..., typename T = ::std::int32_t> 9087 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> get_ref() & { 9088 return {value_.get, type_, get, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9089 } 9090 9091 template <typename..., typename T = ::std::int32_t> 9092 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> get_ref() && { 9093 return {std::move(value_.get), type_, get, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9094 } 9095 template <typename..., typename T = ::std::int32_t> 9096 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> getter_ref() const& { 9097 return {value_.getter, type_, getter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9098 } 9099 9100 template <typename..., typename T = ::std::int32_t> 9101 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> getter_ref() const&& { 9102 return {std::move(value_.getter), type_, getter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9103 } 9104 9105 template <typename..., typename T = ::std::int32_t> 9106 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> getter_ref() & { 9107 return {value_.getter, type_, getter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9108 } 9109 9110 template <typename..., typename T = ::std::int32_t> 9111 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> getter_ref() && { 9112 return {std::move(value_.getter), type_, getter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9113 } 9114 template <typename..., typename T = ::std::int32_t> 9115 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> lists_ref() const& { 9116 return {value_.lists, type_, lists, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9117 } 9118 9119 template <typename..., typename T = ::std::int32_t> 9120 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> lists_ref() const&& { 9121 return {std::move(value_.lists), type_, lists, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9122 } 9123 9124 template <typename..., typename T = ::std::int32_t> 9125 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> lists_ref() & { 9126 return {value_.lists, type_, lists, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9127 } 9128 9129 template <typename..., typename T = ::std::int32_t> 9130 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> lists_ref() && { 9131 return {std::move(value_.lists), type_, lists, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9132 } 9133 template <typename..., typename T = ::std::int32_t> 9134 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> maps_ref() const& { 9135 return {value_.maps, type_, maps, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9136 } 9137 9138 template <typename..., typename T = ::std::int32_t> 9139 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> maps_ref() const&& { 9140 return {std::move(value_.maps), type_, maps, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9141 } 9142 9143 template <typename..., typename T = ::std::int32_t> 9144 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> maps_ref() & { 9145 return {value_.maps, type_, maps, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9146 } 9147 9148 template <typename..., typename T = ::std::int32_t> 9149 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> maps_ref() && { 9150 return {std::move(value_.maps), type_, maps, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9151 } 9152 template <typename..., typename T = ::std::int32_t> 9153 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> name_ref() const& { 9154 return {value_.name, type_, name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9155 } 9156 9157 template <typename..., typename T = ::std::int32_t> 9158 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> name_ref() const&& { 9159 return {std::move(value_.name), type_, name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9160 } 9161 9162 template <typename..., typename T = ::std::int32_t> 9163 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> name_ref() & { 9164 return {value_.name, type_, name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9165 } 9166 9167 template <typename..., typename T = ::std::int32_t> 9168 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> name_ref() && { 9169 return {std::move(value_.name), type_, name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9170 } 9171 template <typename..., typename T = ::std::int32_t> 9172 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> name_to_value_ref() const& { 9173 return {value_.name_to_value, type_, name_to_value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9174 } 9175 9176 template <typename..., typename T = ::std::int32_t> 9177 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> name_to_value_ref() const&& { 9178 return {std::move(value_.name_to_value), type_, name_to_value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9179 } 9180 9181 template <typename..., typename T = ::std::int32_t> 9182 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> name_to_value_ref() & { 9183 return {value_.name_to_value, type_, name_to_value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9184 } 9185 9186 template <typename..., typename T = ::std::int32_t> 9187 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> name_to_value_ref() && { 9188 return {std::move(value_.name_to_value), type_, name_to_value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9189 } 9190 template <typename..., typename T = ::std::int32_t> 9191 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> names_ref() const& { 9192 return {value_.names, type_, names, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9193 } 9194 9195 template <typename..., typename T = ::std::int32_t> 9196 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> names_ref() const&& { 9197 return {std::move(value_.names), type_, names, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9198 } 9199 9200 template <typename..., typename T = ::std::int32_t> 9201 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> names_ref() & { 9202 return {value_.names, type_, names, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9203 } 9204 9205 template <typename..., typename T = ::std::int32_t> 9206 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> names_ref() && { 9207 return {std::move(value_.names), type_, names, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9208 } 9209 template <typename..., typename T = ::std::int32_t> 9210 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> prefix_tree_ref() const& { 9211 return {value_.prefix_tree, type_, prefix_tree, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9212 } 9213 9214 template <typename..., typename T = ::std::int32_t> 9215 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> prefix_tree_ref() const&& { 9216 return {std::move(value_.prefix_tree), type_, prefix_tree, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9217 } 9218 9219 template <typename..., typename T = ::std::int32_t> 9220 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> prefix_tree_ref() & { 9221 return {value_.prefix_tree, type_, prefix_tree, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9222 } 9223 9224 template <typename..., typename T = ::std::int32_t> 9225 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> prefix_tree_ref() && { 9226 return {std::move(value_.prefix_tree), type_, prefix_tree, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9227 } 9228 template <typename..., typename T = ::std::int32_t> 9229 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> sets_ref() const& { 9230 return {value_.sets, type_, sets, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9231 } 9232 9233 template <typename..., typename T = ::std::int32_t> 9234 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> sets_ref() const&& { 9235 return {std::move(value_.sets), type_, sets, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9236 } 9237 9238 template <typename..., typename T = ::std::int32_t> 9239 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> sets_ref() & { 9240 return {value_.sets, type_, sets, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9241 } 9242 9243 template <typename..., typename T = ::std::int32_t> 9244 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> sets_ref() && { 9245 return {std::move(value_.sets), type_, sets, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9246 } 9247 template <typename..., typename T = ::std::int32_t> 9248 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> setter_ref() const& { 9249 return {value_.setter, type_, setter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9250 } 9251 9252 template <typename..., typename T = ::std::int32_t> 9253 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> setter_ref() const&& { 9254 return {std::move(value_.setter), type_, setter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9255 } 9256 9257 template <typename..., typename T = ::std::int32_t> 9258 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> setter_ref() & { 9259 return {value_.setter, type_, setter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9260 } 9261 9262 template <typename..., typename T = ::std::int32_t> 9263 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> setter_ref() && { 9264 return {std::move(value_.setter), type_, setter, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9265 } 9266 template <typename..., typename T = ::std::int32_t> 9267 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> str_ref() const& { 9268 return {value_.str, type_, str, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9269 } 9270 9271 template <typename..., typename T = ::std::int32_t> 9272 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> str_ref() const&& { 9273 return {std::move(value_.str), type_, str, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9274 } 9275 9276 template <typename..., typename T = ::std::int32_t> 9277 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> str_ref() & { 9278 return {value_.str, type_, str, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9279 } 9280 9281 template <typename..., typename T = ::std::int32_t> 9282 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> str_ref() && { 9283 return {std::move(value_.str), type_, str, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9284 } 9285 template <typename..., typename T = ::std::int32_t> 9286 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> strings_ref() const& { 9287 return {value_.strings, type_, strings, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9288 } 9289 9290 template <typename..., typename T = ::std::int32_t> 9291 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> strings_ref() const&& { 9292 return {std::move(value_.strings), type_, strings, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9293 } 9294 9295 template <typename..., typename T = ::std::int32_t> 9296 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> strings_ref() & { 9297 return {value_.strings, type_, strings, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9298 } 9299 9300 template <typename..., typename T = ::std::int32_t> 9301 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> strings_ref() && { 9302 return {std::move(value_.strings), type_, strings, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9303 } 9304 template <typename..., typename T = ::std::int32_t> 9305 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> type_ref() const& { 9306 return {value_.type, type_, type, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9307 } 9308 9309 template <typename..., typename T = ::std::int32_t> 9310 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> type_ref() const&& { 9311 return {std::move(value_.type), type_, type, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9312 } 9313 9314 template <typename..., typename T = ::std::int32_t> 9315 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> type_ref() & { 9316 return {value_.type, type_, type, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9317 } 9318 9319 template <typename..., typename T = ::std::int32_t> 9320 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> type_ref() && { 9321 return {std::move(value_.type), type_, type, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9322 } 9323 template <typename..., typename T = ::std::int32_t> 9324 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> value_ref() const& { 9325 return {value_.value, type_, value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9326 } 9327 9328 template <typename..., typename T = ::std::int32_t> 9329 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> value_ref() const&& { 9330 return {std::move(value_.value), type_, value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9331 } 9332 9333 template <typename..., typename T = ::std::int32_t> 9334 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> value_ref() & { 9335 return {value_.value, type_, value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9336 } 9337 9338 template <typename..., typename T = ::std::int32_t> 9339 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> value_ref() && { 9340 return {std::move(value_.value), type_, value, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9341 } 9342 template <typename..., typename T = ::std::int32_t> 9343 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> value_to_name_ref() const& { 9344 return {value_.value_to_name, type_, value_to_name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9345 } 9346 9347 template <typename..., typename T = ::std::int32_t> 9348 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> value_to_name_ref() const&& { 9349 return {std::move(value_.value_to_name), type_, value_to_name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9350 } 9351 9352 template <typename..., typename T = ::std::int32_t> 9353 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> value_to_name_ref() & { 9354 return {value_.value_to_name, type_, value_to_name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9355 } 9356 9357 template <typename..., typename T = ::std::int32_t> 9358 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> value_to_name_ref() && { 9359 return {std::move(value_.value_to_name), type_, value_to_name, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9360 } 9361 template <typename..., typename T = ::std::int32_t> 9362 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> values_ref() const& { 9363 return {value_.values, type_, values, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9364 } 9365 9366 template <typename..., typename T = ::std::int32_t> 9367 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> values_ref() const&& { 9368 return {std::move(value_.values), type_, values, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9369 } 9370 9371 template <typename..., typename T = ::std::int32_t> 9372 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> values_ref() & { 9373 return {value_.values, type_, values, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9374 } 9375 9376 template <typename..., typename T = ::std::int32_t> 9377 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> values_ref() && { 9378 return {std::move(value_.values), type_, values, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9379 } 9380 template <typename..., typename T = ::std::int32_t> 9381 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> id_ref() const& { 9382 return {value_.id, type_, id, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9383 } 9384 9385 template <typename..., typename T = ::std::int32_t> 9386 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> id_ref() const&& { 9387 return {std::move(value_.id), type_, id, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9388 } 9389 9390 template <typename..., typename T = ::std::int32_t> 9391 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> id_ref() & { 9392 return {value_.id, type_, id, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9393 } 9394 9395 template <typename..., typename T = ::std::int32_t> 9396 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> id_ref() && { 9397 return {std::move(value_.id), type_, id, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9398 } 9399 template <typename..., typename T = ::std::int32_t> 9400 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> ids_ref() const& { 9401 return {value_.ids, type_, ids, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9402 } 9403 9404 template <typename..., typename T = ::std::int32_t> 9405 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> ids_ref() const&& { 9406 return {std::move(value_.ids), type_, ids, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9407 } 9408 9409 template <typename..., typename T = ::std::int32_t> 9410 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> ids_ref() & { 9411 return {value_.ids, type_, ids, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9412 } 9413 9414 template <typename..., typename T = ::std::int32_t> 9415 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> ids_ref() && { 9416 return {std::move(value_.ids), type_, ids, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9417 } 9418 template <typename..., typename T = ::std::int32_t> 9419 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> descriptor_ref() const& { 9420 return {value_.descriptor, type_, descriptor, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9421 } 9422 9423 template <typename..., typename T = ::std::int32_t> 9424 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> descriptor_ref() const&& { 9425 return {std::move(value_.descriptor), type_, descriptor, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9426 } 9427 9428 template <typename..., typename T = ::std::int32_t> 9429 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> descriptor_ref() & { 9430 return {value_.descriptor, type_, descriptor, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9431 } 9432 9433 template <typename..., typename T = ::std::int32_t> 9434 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> descriptor_ref() && { 9435 return {std::move(value_.descriptor), type_, descriptor, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9436 } 9437 template <typename..., typename T = ::std::int32_t> 9438 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> descriptors_ref() const& { 9439 return {value_.descriptors, type_, descriptors, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9440 } 9441 9442 template <typename..., typename T = ::std::int32_t> 9443 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> descriptors_ref() const&& { 9444 return {std::move(value_.descriptors), type_, descriptors, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9445 } 9446 9447 template <typename..., typename T = ::std::int32_t> 9448 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> descriptors_ref() & { 9449 return {value_.descriptors, type_, descriptors, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9450 } 9451 9452 template <typename..., typename T = ::std::int32_t> 9453 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> descriptors_ref() && { 9454 return {std::move(value_.descriptors), type_, descriptors, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9455 } 9456 template <typename..., typename T = ::std::int32_t> 9457 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> key_ref() const& { 9458 return {value_.key, type_, key, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9459 } 9460 9461 template <typename..., typename T = ::std::int32_t> 9462 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> key_ref() const&& { 9463 return {std::move(value_.key), type_, key, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9464 } 9465 9466 template <typename..., typename T = ::std::int32_t> 9467 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> key_ref() & { 9468 return {value_.key, type_, key, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9469 } 9470 9471 template <typename..., typename T = ::std::int32_t> 9472 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> key_ref() && { 9473 return {std::move(value_.key), type_, key, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9474 } 9475 template <typename..., typename T = ::std::int32_t> 9476 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> keys_ref() const& { 9477 return {value_.keys, type_, keys, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9478 } 9479 9480 template <typename..., typename T = ::std::int32_t> 9481 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> keys_ref() const&& { 9482 return {std::move(value_.keys), type_, keys, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9483 } 9484 9485 template <typename..., typename T = ::std::int32_t> 9486 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> keys_ref() & { 9487 return {value_.keys, type_, keys, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9488 } 9489 9490 template <typename..., typename T = ::std::int32_t> 9491 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> keys_ref() && { 9492 return {std::move(value_.keys), type_, keys, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9493 } 9494 template <typename..., typename T = ::std::int32_t> 9495 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> annotation_ref() const& { 9496 return {value_.annotation, type_, annotation, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9497 } 9498 9499 template <typename..., typename T = ::std::int32_t> 9500 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> annotation_ref() const&& { 9501 return {std::move(value_.annotation), type_, annotation, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9502 } 9503 9504 template <typename..., typename T = ::std::int32_t> 9505 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> annotation_ref() & { 9506 return {value_.annotation, type_, annotation, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9507 } 9508 9509 template <typename..., typename T = ::std::int32_t> 9510 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> annotation_ref() && { 9511 return {std::move(value_.annotation), type_, annotation, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9512 } 9513 template <typename..., typename T = ::std::int32_t> 9514 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> annotations_ref() const& { 9515 return {value_.annotations, type_, annotations, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9516 } 9517 9518 template <typename..., typename T = ::std::int32_t> 9519 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> annotations_ref() const&& { 9520 return {std::move(value_.annotations), type_, annotations, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9521 } 9522 9523 template <typename..., typename T = ::std::int32_t> 9524 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> annotations_ref() & { 9525 return {value_.annotations, type_, annotations, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9526 } 9527 9528 template <typename..., typename T = ::std::int32_t> 9529 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> annotations_ref() && { 9530 return {std::move(value_.annotations), type_, annotations, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9531 } 9532 template <typename..., typename T = ::std::int32_t> 9533 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> member_ref() const& { 9534 return {value_.member, type_, member, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9535 } 9536 9537 template <typename..., typename T = ::std::int32_t> 9538 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> member_ref() const&& { 9539 return {std::move(value_.member), type_, member, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9540 } 9541 9542 template <typename..., typename T = ::std::int32_t> 9543 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> member_ref() & { 9544 return {value_.member, type_, member, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9545 } 9546 9547 template <typename..., typename T = ::std::int32_t> 9548 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> member_ref() && { 9549 return {std::move(value_.member), type_, member, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9550 } 9551 template <typename..., typename T = ::std::int32_t> 9552 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> members_ref() const& { 9553 return {value_.members, type_, members, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9554 } 9555 9556 template <typename..., typename T = ::std::int32_t> 9557 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> members_ref() const&& { 9558 return {std::move(value_.members), type_, members, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9559 } 9560 9561 template <typename..., typename T = ::std::int32_t> 9562 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> members_ref() & { 9563 return {value_.members, type_, members, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9564 } 9565 9566 template <typename..., typename T = ::std::int32_t> 9567 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> members_ref() && { 9568 return {std::move(value_.members), type_, members, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9569 } 9570 template <typename..., typename T = ::std::int32_t> 9571 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> field_ref() const& { 9572 return {value_.field, type_, field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9573 } 9574 9575 template <typename..., typename T = ::std::int32_t> 9576 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> field_ref() const&& { 9577 return {std::move(value_.field), type_, field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9578 } 9579 9580 template <typename..., typename T = ::std::int32_t> 9581 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> field_ref() & { 9582 return {value_.field, type_, field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9583 } 9584 9585 template <typename..., typename T = ::std::int32_t> 9586 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> field_ref() && { 9587 return {std::move(value_.field), type_, field, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9588 } 9589 template <typename..., typename T = ::std::int32_t> 9590 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&> fields_ref() const& { 9591 return {value_.fields, type_, fields, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9592 } 9593 9594 template <typename..., typename T = ::std::int32_t> 9595 FOLLY_ERASE ::apache::thrift::union_field_ref<const T&&> fields_ref() const&& { 9596 return {std::move(value_.fields), type_, fields, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9597 } 9598 9599 template <typename..., typename T = ::std::int32_t> 9600 FOLLY_ERASE ::apache::thrift::union_field_ref<T&> fields_ref() & { 9601 return {value_.fields, type_, fields, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9602 } 9603 9604 template <typename..., typename T = ::std::int32_t> 9605 FOLLY_ERASE ::apache::thrift::union_field_ref<T&&> fields_ref() && { 9606 return {std::move(value_.fields), type_, fields, this, ::apache::thrift::detail::union_field_ref_owner_vtable_for<decltype(*this)>}; 9607 } 9608 Type getType() const { return static_cast<Type>(type_); } 9609 9610 template <class Protocol_> 9611 uint32_t read(Protocol_* iprot); 9612 template <class Protocol_> 9613 uint32_t serializedSize(Protocol_ const* prot_) const; 9614 template <class Protocol_> 9615 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 9616 template <class Protocol_> 9617 uint32_t write(Protocol_* prot_) const; 9618 protected: 9619 template <class T> 9620 void destruct(T &val) { 9621 (&val)->~T(); 9622 } 9623 9624 storage_type value_; 9625 std::underlying_type_t<Type> type_; 9626 9627 private: 9628 template <class Protocol_> 9629 void readNoXfer(Protocol_* iprot); 9630 9631 friend class ::apache::thrift::Cpp2Ops<union_with_special_names>; 9632 friend void swap(union_with_special_names& a, union_with_special_names& b); 9633 }; 9634 9635 template <class Protocol_> 9636 uint32_t union_with_special_names::read(Protocol_* iprot) { 9637 auto _xferStart = iprot->getCursorPosition(); 9638 readNoXfer(iprot); 9639 return iprot->getCursorPosition() - _xferStart; 9640 } 9641 9642 }} // test_cpp2::cpp_reflection 9643 namespace test_cpp2 { namespace cpp_reflection { 9644 class struct_with_special_names final { 9645 private: 9646 friend struct ::apache::thrift::detail::st::struct_private_access; 9647 9648 // used by a static_assert in the corresponding source 9649 static constexpr bool __fbthrift_cpp2_gen_json = false; 9650 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 9651 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 9652 9653 void __fbthrift_clear(); 9654 9655 public: 9656 using __fbthrift_cpp2_type = struct_with_special_names; 9657 static constexpr bool __fbthrift_cpp2_is_union = 9658 false; 9659 9660 9661 public: 9662 9663 struct_with_special_names() : 9664 __fbthrift_field_get(), 9665 __fbthrift_field_getter(), 9666 __fbthrift_field_lists(), 9667 __fbthrift_field_maps(), 9668 __fbthrift_field_name(), 9669 __fbthrift_field_name_to_value(), 9670 __fbthrift_field_names(), 9671 __fbthrift_field_prefix_tree(), 9672 __fbthrift_field_sets(), 9673 __fbthrift_field_setter(), 9674 __fbthrift_field_str(), 9675 __fbthrift_field_strings(), 9676 __fbthrift_field_type(), 9677 __fbthrift_field_value(), 9678 __fbthrift_field_value_to_name(), 9679 __fbthrift_field_values(), 9680 __fbthrift_field_id(), 9681 __fbthrift_field_ids(), 9682 __fbthrift_field_descriptor(), 9683 __fbthrift_field_descriptors(), 9684 __fbthrift_field_key(), 9685 __fbthrift_field_keys(), 9686 __fbthrift_field_annotation(), 9687 __fbthrift_field_annotations(), 9688 __fbthrift_field_member(), 9689 __fbthrift_field_members(), 9690 __fbthrift_field_field(), 9691 __fbthrift_field_fields() { 9692 } 9693 // FragileConstructor for use in initialization lists only. 9694 [[deprecated("This constructor is deprecated")]] 9695 struct_with_special_names(apache::thrift::FragileConstructor, ::std::int32_t get__arg, ::std::int32_t getter__arg, ::std::int32_t lists__arg, ::std::int32_t maps__arg, ::std::int32_t name__arg, ::std::int32_t name_to_value__arg, ::std::int32_t names__arg, ::std::int32_t prefix_tree__arg, ::std::int32_t sets__arg, ::std::int32_t setter__arg, ::std::int32_t str__arg, ::std::int32_t strings__arg, ::std::int32_t type__arg, ::std::int32_t value__arg, ::std::int32_t value_to_name__arg, ::std::int32_t values__arg, ::std::int32_t id__arg, ::std::int32_t ids__arg, ::std::int32_t descriptor__arg, ::std::int32_t descriptors__arg, ::std::int32_t key__arg, ::std::int32_t keys__arg, ::std::int32_t annotation__arg, ::std::int32_t annotations__arg, ::std::int32_t member__arg, ::std::int32_t members__arg, ::std::int32_t field__arg, ::std::int32_t fields__arg); 9696 9697 struct_with_special_names(struct_with_special_names&&) = default; 9698 9699 struct_with_special_names(const struct_with_special_names&) = default; 9700 9701 9702 struct_with_special_names& operator=(struct_with_special_names&&) = default; 9703 9704 struct_with_special_names& operator=(const struct_with_special_names&) = default; 9705 private: 9706 ::std::int32_t __fbthrift_field_get; 9707 private: 9708 ::std::int32_t __fbthrift_field_getter; 9709 private: 9710 ::std::int32_t __fbthrift_field_lists; 9711 private: 9712 ::std::int32_t __fbthrift_field_maps; 9713 private: 9714 ::std::int32_t __fbthrift_field_name; 9715 private: 9716 ::std::int32_t __fbthrift_field_name_to_value; 9717 private: 9718 ::std::int32_t __fbthrift_field_names; 9719 private: 9720 ::std::int32_t __fbthrift_field_prefix_tree; 9721 private: 9722 ::std::int32_t __fbthrift_field_sets; 9723 private: 9724 ::std::int32_t __fbthrift_field_setter; 9725 private: 9726 ::std::int32_t __fbthrift_field_str; 9727 private: 9728 ::std::int32_t __fbthrift_field_strings; 9729 private: 9730 ::std::int32_t __fbthrift_field_type; 9731 private: 9732 ::std::int32_t __fbthrift_field_value; 9733 private: 9734 ::std::int32_t __fbthrift_field_value_to_name; 9735 private: 9736 ::std::int32_t __fbthrift_field_values; 9737 private: 9738 ::std::int32_t __fbthrift_field_id; 9739 private: 9740 ::std::int32_t __fbthrift_field_ids; 9741 private: 9742 ::std::int32_t __fbthrift_field_descriptor; 9743 private: 9744 ::std::int32_t __fbthrift_field_descriptors; 9745 private: 9746 ::std::int32_t __fbthrift_field_key; 9747 private: 9748 ::std::int32_t __fbthrift_field_keys; 9749 private: 9750 ::std::int32_t __fbthrift_field_annotation; 9751 private: 9752 ::std::int32_t __fbthrift_field_annotations; 9753 private: 9754 ::std::int32_t __fbthrift_field_member; 9755 private: 9756 ::std::int32_t __fbthrift_field_members; 9757 private: 9758 ::std::int32_t __fbthrift_field_field; 9759 private: 9760 ::std::int32_t __fbthrift_field_fields; 9761 private: 9762 apache::thrift::detail::isset_bitset<28, false> __isset; 9763 9764 public: 9765 9766 bool operator==(const struct_with_special_names&) const; 9767 bool operator<(const struct_with_special_names&) const; 9768 9769 template <typename..., typename T = ::std::int32_t> 9770 FOLLY_ERASE ::apache::thrift::field_ref<const T&> get_ref() const& { 9771 return {this->__fbthrift_field_get, __isset.at(0), __isset.bit(0)}; 9772 } 9773 9774 template <typename..., typename T = ::std::int32_t> 9775 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> get_ref() const&& { 9776 return {static_cast<const T&&>(this->__fbthrift_field_get), __isset.at(0), __isset.bit(0)}; 9777 } 9778 9779 template <typename..., typename T = ::std::int32_t> 9780 FOLLY_ERASE ::apache::thrift::field_ref<T&> get_ref() & { 9781 return {this->__fbthrift_field_get, __isset.at(0), __isset.bit(0)}; 9782 } 9783 9784 template <typename..., typename T = ::std::int32_t> 9785 FOLLY_ERASE ::apache::thrift::field_ref<T&&> get_ref() && { 9786 return {static_cast<T&&>(this->__fbthrift_field_get), __isset.at(0), __isset.bit(0)}; 9787 } 9788 9789 template <typename..., typename T = ::std::int32_t> 9790 FOLLY_ERASE ::apache::thrift::field_ref<const T&> get() const& { 9791 return {this->__fbthrift_field_get, __isset.at(0), __isset.bit(0)}; 9792 } 9793 9794 template <typename..., typename T = ::std::int32_t> 9795 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> get() const&& { 9796 return {static_cast<const T&&>(this->__fbthrift_field_get), __isset.at(0), __isset.bit(0)}; 9797 } 9798 9799 template <typename..., typename T = ::std::int32_t> 9800 FOLLY_ERASE ::apache::thrift::field_ref<T&> get() & { 9801 return {this->__fbthrift_field_get, __isset.at(0), __isset.bit(0)}; 9802 } 9803 9804 template <typename..., typename T = ::std::int32_t> 9805 FOLLY_ERASE ::apache::thrift::field_ref<T&&> get() && { 9806 return {static_cast<T&&>(this->__fbthrift_field_get), __isset.at(0), __isset.bit(0)}; 9807 } 9808 9809 template <typename..., typename T = ::std::int32_t> 9810 FOLLY_ERASE ::apache::thrift::field_ref<const T&> getter_ref() const& { 9811 return {this->__fbthrift_field_getter, __isset.at(1), __isset.bit(1)}; 9812 } 9813 9814 template <typename..., typename T = ::std::int32_t> 9815 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> getter_ref() const&& { 9816 return {static_cast<const T&&>(this->__fbthrift_field_getter), __isset.at(1), __isset.bit(1)}; 9817 } 9818 9819 template <typename..., typename T = ::std::int32_t> 9820 FOLLY_ERASE ::apache::thrift::field_ref<T&> getter_ref() & { 9821 return {this->__fbthrift_field_getter, __isset.at(1), __isset.bit(1)}; 9822 } 9823 9824 template <typename..., typename T = ::std::int32_t> 9825 FOLLY_ERASE ::apache::thrift::field_ref<T&&> getter_ref() && { 9826 return {static_cast<T&&>(this->__fbthrift_field_getter), __isset.at(1), __isset.bit(1)}; 9827 } 9828 9829 template <typename..., typename T = ::std::int32_t> 9830 FOLLY_ERASE ::apache::thrift::field_ref<const T&> getter() const& { 9831 return {this->__fbthrift_field_getter, __isset.at(1), __isset.bit(1)}; 9832 } 9833 9834 template <typename..., typename T = ::std::int32_t> 9835 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> getter() const&& { 9836 return {static_cast<const T&&>(this->__fbthrift_field_getter), __isset.at(1), __isset.bit(1)}; 9837 } 9838 9839 template <typename..., typename T = ::std::int32_t> 9840 FOLLY_ERASE ::apache::thrift::field_ref<T&> getter() & { 9841 return {this->__fbthrift_field_getter, __isset.at(1), __isset.bit(1)}; 9842 } 9843 9844 template <typename..., typename T = ::std::int32_t> 9845 FOLLY_ERASE ::apache::thrift::field_ref<T&&> getter() && { 9846 return {static_cast<T&&>(this->__fbthrift_field_getter), __isset.at(1), __isset.bit(1)}; 9847 } 9848 9849 template <typename..., typename T = ::std::int32_t> 9850 FOLLY_ERASE ::apache::thrift::field_ref<const T&> lists_ref() const& { 9851 return {this->__fbthrift_field_lists, __isset.at(2), __isset.bit(2)}; 9852 } 9853 9854 template <typename..., typename T = ::std::int32_t> 9855 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> lists_ref() const&& { 9856 return {static_cast<const T&&>(this->__fbthrift_field_lists), __isset.at(2), __isset.bit(2)}; 9857 } 9858 9859 template <typename..., typename T = ::std::int32_t> 9860 FOLLY_ERASE ::apache::thrift::field_ref<T&> lists_ref() & { 9861 return {this->__fbthrift_field_lists, __isset.at(2), __isset.bit(2)}; 9862 } 9863 9864 template <typename..., typename T = ::std::int32_t> 9865 FOLLY_ERASE ::apache::thrift::field_ref<T&&> lists_ref() && { 9866 return {static_cast<T&&>(this->__fbthrift_field_lists), __isset.at(2), __isset.bit(2)}; 9867 } 9868 9869 template <typename..., typename T = ::std::int32_t> 9870 FOLLY_ERASE ::apache::thrift::field_ref<const T&> lists() const& { 9871 return {this->__fbthrift_field_lists, __isset.at(2), __isset.bit(2)}; 9872 } 9873 9874 template <typename..., typename T = ::std::int32_t> 9875 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> lists() const&& { 9876 return {static_cast<const T&&>(this->__fbthrift_field_lists), __isset.at(2), __isset.bit(2)}; 9877 } 9878 9879 template <typename..., typename T = ::std::int32_t> 9880 FOLLY_ERASE ::apache::thrift::field_ref<T&> lists() & { 9881 return {this->__fbthrift_field_lists, __isset.at(2), __isset.bit(2)}; 9882 } 9883 9884 template <typename..., typename T = ::std::int32_t> 9885 FOLLY_ERASE ::apache::thrift::field_ref<T&&> lists() && { 9886 return {static_cast<T&&>(this->__fbthrift_field_lists), __isset.at(2), __isset.bit(2)}; 9887 } 9888 9889 template <typename..., typename T = ::std::int32_t> 9890 FOLLY_ERASE ::apache::thrift::field_ref<const T&> maps_ref() const& { 9891 return {this->__fbthrift_field_maps, __isset.at(3), __isset.bit(3)}; 9892 } 9893 9894 template <typename..., typename T = ::std::int32_t> 9895 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> maps_ref() const&& { 9896 return {static_cast<const T&&>(this->__fbthrift_field_maps), __isset.at(3), __isset.bit(3)}; 9897 } 9898 9899 template <typename..., typename T = ::std::int32_t> 9900 FOLLY_ERASE ::apache::thrift::field_ref<T&> maps_ref() & { 9901 return {this->__fbthrift_field_maps, __isset.at(3), __isset.bit(3)}; 9902 } 9903 9904 template <typename..., typename T = ::std::int32_t> 9905 FOLLY_ERASE ::apache::thrift::field_ref<T&&> maps_ref() && { 9906 return {static_cast<T&&>(this->__fbthrift_field_maps), __isset.at(3), __isset.bit(3)}; 9907 } 9908 9909 template <typename..., typename T = ::std::int32_t> 9910 FOLLY_ERASE ::apache::thrift::field_ref<const T&> maps() const& { 9911 return {this->__fbthrift_field_maps, __isset.at(3), __isset.bit(3)}; 9912 } 9913 9914 template <typename..., typename T = ::std::int32_t> 9915 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> maps() const&& { 9916 return {static_cast<const T&&>(this->__fbthrift_field_maps), __isset.at(3), __isset.bit(3)}; 9917 } 9918 9919 template <typename..., typename T = ::std::int32_t> 9920 FOLLY_ERASE ::apache::thrift::field_ref<T&> maps() & { 9921 return {this->__fbthrift_field_maps, __isset.at(3), __isset.bit(3)}; 9922 } 9923 9924 template <typename..., typename T = ::std::int32_t> 9925 FOLLY_ERASE ::apache::thrift::field_ref<T&&> maps() && { 9926 return {static_cast<T&&>(this->__fbthrift_field_maps), __isset.at(3), __isset.bit(3)}; 9927 } 9928 9929 template <typename..., typename T = ::std::int32_t> 9930 FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_ref() const& { 9931 return {this->__fbthrift_field_name, __isset.at(4), __isset.bit(4)}; 9932 } 9933 9934 template <typename..., typename T = ::std::int32_t> 9935 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> name_ref() const&& { 9936 return {static_cast<const T&&>(this->__fbthrift_field_name), __isset.at(4), __isset.bit(4)}; 9937 } 9938 9939 template <typename..., typename T = ::std::int32_t> 9940 FOLLY_ERASE ::apache::thrift::field_ref<T&> name_ref() & { 9941 return {this->__fbthrift_field_name, __isset.at(4), __isset.bit(4)}; 9942 } 9943 9944 template <typename..., typename T = ::std::int32_t> 9945 FOLLY_ERASE ::apache::thrift::field_ref<T&&> name_ref() && { 9946 return {static_cast<T&&>(this->__fbthrift_field_name), __isset.at(4), __isset.bit(4)}; 9947 } 9948 9949 template <typename..., typename T = ::std::int32_t> 9950 FOLLY_ERASE ::apache::thrift::field_ref<const T&> name() const& { 9951 return {this->__fbthrift_field_name, __isset.at(4), __isset.bit(4)}; 9952 } 9953 9954 template <typename..., typename T = ::std::int32_t> 9955 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> name() const&& { 9956 return {static_cast<const T&&>(this->__fbthrift_field_name), __isset.at(4), __isset.bit(4)}; 9957 } 9958 9959 template <typename..., typename T = ::std::int32_t> 9960 FOLLY_ERASE ::apache::thrift::field_ref<T&> name() & { 9961 return {this->__fbthrift_field_name, __isset.at(4), __isset.bit(4)}; 9962 } 9963 9964 template <typename..., typename T = ::std::int32_t> 9965 FOLLY_ERASE ::apache::thrift::field_ref<T&&> name() && { 9966 return {static_cast<T&&>(this->__fbthrift_field_name), __isset.at(4), __isset.bit(4)}; 9967 } 9968 9969 template <typename..., typename T = ::std::int32_t> 9970 FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_to_value_ref() const& { 9971 return {this->__fbthrift_field_name_to_value, __isset.at(5), __isset.bit(5)}; 9972 } 9973 9974 template <typename..., typename T = ::std::int32_t> 9975 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> name_to_value_ref() const&& { 9976 return {static_cast<const T&&>(this->__fbthrift_field_name_to_value), __isset.at(5), __isset.bit(5)}; 9977 } 9978 9979 template <typename..., typename T = ::std::int32_t> 9980 FOLLY_ERASE ::apache::thrift::field_ref<T&> name_to_value_ref() & { 9981 return {this->__fbthrift_field_name_to_value, __isset.at(5), __isset.bit(5)}; 9982 } 9983 9984 template <typename..., typename T = ::std::int32_t> 9985 FOLLY_ERASE ::apache::thrift::field_ref<T&&> name_to_value_ref() && { 9986 return {static_cast<T&&>(this->__fbthrift_field_name_to_value), __isset.at(5), __isset.bit(5)}; 9987 } 9988 9989 template <typename..., typename T = ::std::int32_t> 9990 FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_to_value() const& { 9991 return {this->__fbthrift_field_name_to_value, __isset.at(5), __isset.bit(5)}; 9992 } 9993 9994 template <typename..., typename T = ::std::int32_t> 9995 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> name_to_value() const&& { 9996 return {static_cast<const T&&>(this->__fbthrift_field_name_to_value), __isset.at(5), __isset.bit(5)}; 9997 } 9998 9999 template <typename..., typename T = ::std::int32_t> 10000 FOLLY_ERASE ::apache::thrift::field_ref<T&> name_to_value() & { 10001 return {this->__fbthrift_field_name_to_value, __isset.at(5), __isset.bit(5)}; 10002 } 10003 10004 template <typename..., typename T = ::std::int32_t> 10005 FOLLY_ERASE ::apache::thrift::field_ref<T&&> name_to_value() && { 10006 return {static_cast<T&&>(this->__fbthrift_field_name_to_value), __isset.at(5), __isset.bit(5)}; 10007 } 10008 10009 template <typename..., typename T = ::std::int32_t> 10010 FOLLY_ERASE ::apache::thrift::field_ref<const T&> names_ref() const& { 10011 return {this->__fbthrift_field_names, __isset.at(6), __isset.bit(6)}; 10012 } 10013 10014 template <typename..., typename T = ::std::int32_t> 10015 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> names_ref() const&& { 10016 return {static_cast<const T&&>(this->__fbthrift_field_names), __isset.at(6), __isset.bit(6)}; 10017 } 10018 10019 template <typename..., typename T = ::std::int32_t> 10020 FOLLY_ERASE ::apache::thrift::field_ref<T&> names_ref() & { 10021 return {this->__fbthrift_field_names, __isset.at(6), __isset.bit(6)}; 10022 } 10023 10024 template <typename..., typename T = ::std::int32_t> 10025 FOLLY_ERASE ::apache::thrift::field_ref<T&&> names_ref() && { 10026 return {static_cast<T&&>(this->__fbthrift_field_names), __isset.at(6), __isset.bit(6)}; 10027 } 10028 10029 template <typename..., typename T = ::std::int32_t> 10030 FOLLY_ERASE ::apache::thrift::field_ref<const T&> names() const& { 10031 return {this->__fbthrift_field_names, __isset.at(6), __isset.bit(6)}; 10032 } 10033 10034 template <typename..., typename T = ::std::int32_t> 10035 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> names() const&& { 10036 return {static_cast<const T&&>(this->__fbthrift_field_names), __isset.at(6), __isset.bit(6)}; 10037 } 10038 10039 template <typename..., typename T = ::std::int32_t> 10040 FOLLY_ERASE ::apache::thrift::field_ref<T&> names() & { 10041 return {this->__fbthrift_field_names, __isset.at(6), __isset.bit(6)}; 10042 } 10043 10044 template <typename..., typename T = ::std::int32_t> 10045 FOLLY_ERASE ::apache::thrift::field_ref<T&&> names() && { 10046 return {static_cast<T&&>(this->__fbthrift_field_names), __isset.at(6), __isset.bit(6)}; 10047 } 10048 10049 template <typename..., typename T = ::std::int32_t> 10050 FOLLY_ERASE ::apache::thrift::field_ref<const T&> prefix_tree_ref() const& { 10051 return {this->__fbthrift_field_prefix_tree, __isset.at(7), __isset.bit(7)}; 10052 } 10053 10054 template <typename..., typename T = ::std::int32_t> 10055 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> prefix_tree_ref() const&& { 10056 return {static_cast<const T&&>(this->__fbthrift_field_prefix_tree), __isset.at(7), __isset.bit(7)}; 10057 } 10058 10059 template <typename..., typename T = ::std::int32_t> 10060 FOLLY_ERASE ::apache::thrift::field_ref<T&> prefix_tree_ref() & { 10061 return {this->__fbthrift_field_prefix_tree, __isset.at(7), __isset.bit(7)}; 10062 } 10063 10064 template <typename..., typename T = ::std::int32_t> 10065 FOLLY_ERASE ::apache::thrift::field_ref<T&&> prefix_tree_ref() && { 10066 return {static_cast<T&&>(this->__fbthrift_field_prefix_tree), __isset.at(7), __isset.bit(7)}; 10067 } 10068 10069 template <typename..., typename T = ::std::int32_t> 10070 FOLLY_ERASE ::apache::thrift::field_ref<const T&> prefix_tree() const& { 10071 return {this->__fbthrift_field_prefix_tree, __isset.at(7), __isset.bit(7)}; 10072 } 10073 10074 template <typename..., typename T = ::std::int32_t> 10075 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> prefix_tree() const&& { 10076 return {static_cast<const T&&>(this->__fbthrift_field_prefix_tree), __isset.at(7), __isset.bit(7)}; 10077 } 10078 10079 template <typename..., typename T = ::std::int32_t> 10080 FOLLY_ERASE ::apache::thrift::field_ref<T&> prefix_tree() & { 10081 return {this->__fbthrift_field_prefix_tree, __isset.at(7), __isset.bit(7)}; 10082 } 10083 10084 template <typename..., typename T = ::std::int32_t> 10085 FOLLY_ERASE ::apache::thrift::field_ref<T&&> prefix_tree() && { 10086 return {static_cast<T&&>(this->__fbthrift_field_prefix_tree), __isset.at(7), __isset.bit(7)}; 10087 } 10088 10089 template <typename..., typename T = ::std::int32_t> 10090 FOLLY_ERASE ::apache::thrift::field_ref<const T&> sets_ref() const& { 10091 return {this->__fbthrift_field_sets, __isset.at(8), __isset.bit(8)}; 10092 } 10093 10094 template <typename..., typename T = ::std::int32_t> 10095 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> sets_ref() const&& { 10096 return {static_cast<const T&&>(this->__fbthrift_field_sets), __isset.at(8), __isset.bit(8)}; 10097 } 10098 10099 template <typename..., typename T = ::std::int32_t> 10100 FOLLY_ERASE ::apache::thrift::field_ref<T&> sets_ref() & { 10101 return {this->__fbthrift_field_sets, __isset.at(8), __isset.bit(8)}; 10102 } 10103 10104 template <typename..., typename T = ::std::int32_t> 10105 FOLLY_ERASE ::apache::thrift::field_ref<T&&> sets_ref() && { 10106 return {static_cast<T&&>(this->__fbthrift_field_sets), __isset.at(8), __isset.bit(8)}; 10107 } 10108 10109 template <typename..., typename T = ::std::int32_t> 10110 FOLLY_ERASE ::apache::thrift::field_ref<const T&> sets() const& { 10111 return {this->__fbthrift_field_sets, __isset.at(8), __isset.bit(8)}; 10112 } 10113 10114 template <typename..., typename T = ::std::int32_t> 10115 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> sets() const&& { 10116 return {static_cast<const T&&>(this->__fbthrift_field_sets), __isset.at(8), __isset.bit(8)}; 10117 } 10118 10119 template <typename..., typename T = ::std::int32_t> 10120 FOLLY_ERASE ::apache::thrift::field_ref<T&> sets() & { 10121 return {this->__fbthrift_field_sets, __isset.at(8), __isset.bit(8)}; 10122 } 10123 10124 template <typename..., typename T = ::std::int32_t> 10125 FOLLY_ERASE ::apache::thrift::field_ref<T&&> sets() && { 10126 return {static_cast<T&&>(this->__fbthrift_field_sets), __isset.at(8), __isset.bit(8)}; 10127 } 10128 10129 template <typename..., typename T = ::std::int32_t> 10130 FOLLY_ERASE ::apache::thrift::field_ref<const T&> setter_ref() const& { 10131 return {this->__fbthrift_field_setter, __isset.at(9), __isset.bit(9)}; 10132 } 10133 10134 template <typename..., typename T = ::std::int32_t> 10135 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> setter_ref() const&& { 10136 return {static_cast<const T&&>(this->__fbthrift_field_setter), __isset.at(9), __isset.bit(9)}; 10137 } 10138 10139 template <typename..., typename T = ::std::int32_t> 10140 FOLLY_ERASE ::apache::thrift::field_ref<T&> setter_ref() & { 10141 return {this->__fbthrift_field_setter, __isset.at(9), __isset.bit(9)}; 10142 } 10143 10144 template <typename..., typename T = ::std::int32_t> 10145 FOLLY_ERASE ::apache::thrift::field_ref<T&&> setter_ref() && { 10146 return {static_cast<T&&>(this->__fbthrift_field_setter), __isset.at(9), __isset.bit(9)}; 10147 } 10148 10149 template <typename..., typename T = ::std::int32_t> 10150 FOLLY_ERASE ::apache::thrift::field_ref<const T&> setter() const& { 10151 return {this->__fbthrift_field_setter, __isset.at(9), __isset.bit(9)}; 10152 } 10153 10154 template <typename..., typename T = ::std::int32_t> 10155 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> setter() const&& { 10156 return {static_cast<const T&&>(this->__fbthrift_field_setter), __isset.at(9), __isset.bit(9)}; 10157 } 10158 10159 template <typename..., typename T = ::std::int32_t> 10160 FOLLY_ERASE ::apache::thrift::field_ref<T&> setter() & { 10161 return {this->__fbthrift_field_setter, __isset.at(9), __isset.bit(9)}; 10162 } 10163 10164 template <typename..., typename T = ::std::int32_t> 10165 FOLLY_ERASE ::apache::thrift::field_ref<T&&> setter() && { 10166 return {static_cast<T&&>(this->__fbthrift_field_setter), __isset.at(9), __isset.bit(9)}; 10167 } 10168 10169 template <typename..., typename T = ::std::int32_t> 10170 FOLLY_ERASE ::apache::thrift::field_ref<const T&> str_ref() const& { 10171 return {this->__fbthrift_field_str, __isset.at(10), __isset.bit(10)}; 10172 } 10173 10174 template <typename..., typename T = ::std::int32_t> 10175 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> str_ref() const&& { 10176 return {static_cast<const T&&>(this->__fbthrift_field_str), __isset.at(10), __isset.bit(10)}; 10177 } 10178 10179 template <typename..., typename T = ::std::int32_t> 10180 FOLLY_ERASE ::apache::thrift::field_ref<T&> str_ref() & { 10181 return {this->__fbthrift_field_str, __isset.at(10), __isset.bit(10)}; 10182 } 10183 10184 template <typename..., typename T = ::std::int32_t> 10185 FOLLY_ERASE ::apache::thrift::field_ref<T&&> str_ref() && { 10186 return {static_cast<T&&>(this->__fbthrift_field_str), __isset.at(10), __isset.bit(10)}; 10187 } 10188 10189 template <typename..., typename T = ::std::int32_t> 10190 FOLLY_ERASE ::apache::thrift::field_ref<const T&> str() const& { 10191 return {this->__fbthrift_field_str, __isset.at(10), __isset.bit(10)}; 10192 } 10193 10194 template <typename..., typename T = ::std::int32_t> 10195 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> str() const&& { 10196 return {static_cast<const T&&>(this->__fbthrift_field_str), __isset.at(10), __isset.bit(10)}; 10197 } 10198 10199 template <typename..., typename T = ::std::int32_t> 10200 FOLLY_ERASE ::apache::thrift::field_ref<T&> str() & { 10201 return {this->__fbthrift_field_str, __isset.at(10), __isset.bit(10)}; 10202 } 10203 10204 template <typename..., typename T = ::std::int32_t> 10205 FOLLY_ERASE ::apache::thrift::field_ref<T&&> str() && { 10206 return {static_cast<T&&>(this->__fbthrift_field_str), __isset.at(10), __isset.bit(10)}; 10207 } 10208 10209 template <typename..., typename T = ::std::int32_t> 10210 FOLLY_ERASE ::apache::thrift::field_ref<const T&> strings_ref() const& { 10211 return {this->__fbthrift_field_strings, __isset.at(11), __isset.bit(11)}; 10212 } 10213 10214 template <typename..., typename T = ::std::int32_t> 10215 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> strings_ref() const&& { 10216 return {static_cast<const T&&>(this->__fbthrift_field_strings), __isset.at(11), __isset.bit(11)}; 10217 } 10218 10219 template <typename..., typename T = ::std::int32_t> 10220 FOLLY_ERASE ::apache::thrift::field_ref<T&> strings_ref() & { 10221 return {this->__fbthrift_field_strings, __isset.at(11), __isset.bit(11)}; 10222 } 10223 10224 template <typename..., typename T = ::std::int32_t> 10225 FOLLY_ERASE ::apache::thrift::field_ref<T&&> strings_ref() && { 10226 return {static_cast<T&&>(this->__fbthrift_field_strings), __isset.at(11), __isset.bit(11)}; 10227 } 10228 10229 template <typename..., typename T = ::std::int32_t> 10230 FOLLY_ERASE ::apache::thrift::field_ref<const T&> strings() const& { 10231 return {this->__fbthrift_field_strings, __isset.at(11), __isset.bit(11)}; 10232 } 10233 10234 template <typename..., typename T = ::std::int32_t> 10235 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> strings() const&& { 10236 return {static_cast<const T&&>(this->__fbthrift_field_strings), __isset.at(11), __isset.bit(11)}; 10237 } 10238 10239 template <typename..., typename T = ::std::int32_t> 10240 FOLLY_ERASE ::apache::thrift::field_ref<T&> strings() & { 10241 return {this->__fbthrift_field_strings, __isset.at(11), __isset.bit(11)}; 10242 } 10243 10244 template <typename..., typename T = ::std::int32_t> 10245 FOLLY_ERASE ::apache::thrift::field_ref<T&&> strings() && { 10246 return {static_cast<T&&>(this->__fbthrift_field_strings), __isset.at(11), __isset.bit(11)}; 10247 } 10248 10249 template <typename..., typename T = ::std::int32_t> 10250 FOLLY_ERASE ::apache::thrift::field_ref<const T&> type_ref() const& { 10251 return {this->__fbthrift_field_type, __isset.at(12), __isset.bit(12)}; 10252 } 10253 10254 template <typename..., typename T = ::std::int32_t> 10255 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> type_ref() const&& { 10256 return {static_cast<const T&&>(this->__fbthrift_field_type), __isset.at(12), __isset.bit(12)}; 10257 } 10258 10259 template <typename..., typename T = ::std::int32_t> 10260 FOLLY_ERASE ::apache::thrift::field_ref<T&> type_ref() & { 10261 return {this->__fbthrift_field_type, __isset.at(12), __isset.bit(12)}; 10262 } 10263 10264 template <typename..., typename T = ::std::int32_t> 10265 FOLLY_ERASE ::apache::thrift::field_ref<T&&> type_ref() && { 10266 return {static_cast<T&&>(this->__fbthrift_field_type), __isset.at(12), __isset.bit(12)}; 10267 } 10268 10269 template <typename..., typename T = ::std::int32_t> 10270 FOLLY_ERASE ::apache::thrift::field_ref<const T&> type() const& { 10271 return {this->__fbthrift_field_type, __isset.at(12), __isset.bit(12)}; 10272 } 10273 10274 template <typename..., typename T = ::std::int32_t> 10275 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> type() const&& { 10276 return {static_cast<const T&&>(this->__fbthrift_field_type), __isset.at(12), __isset.bit(12)}; 10277 } 10278 10279 template <typename..., typename T = ::std::int32_t> 10280 FOLLY_ERASE ::apache::thrift::field_ref<T&> type() & { 10281 return {this->__fbthrift_field_type, __isset.at(12), __isset.bit(12)}; 10282 } 10283 10284 template <typename..., typename T = ::std::int32_t> 10285 FOLLY_ERASE ::apache::thrift::field_ref<T&&> type() && { 10286 return {static_cast<T&&>(this->__fbthrift_field_type), __isset.at(12), __isset.bit(12)}; 10287 } 10288 10289 template <typename..., typename T = ::std::int32_t> 10290 FOLLY_ERASE ::apache::thrift::field_ref<const T&> value_ref() const& { 10291 return {this->__fbthrift_field_value, __isset.at(13), __isset.bit(13)}; 10292 } 10293 10294 template <typename..., typename T = ::std::int32_t> 10295 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> value_ref() const&& { 10296 return {static_cast<const T&&>(this->__fbthrift_field_value), __isset.at(13), __isset.bit(13)}; 10297 } 10298 10299 template <typename..., typename T = ::std::int32_t> 10300 FOLLY_ERASE ::apache::thrift::field_ref<T&> value_ref() & { 10301 return {this->__fbthrift_field_value, __isset.at(13), __isset.bit(13)}; 10302 } 10303 10304 template <typename..., typename T = ::std::int32_t> 10305 FOLLY_ERASE ::apache::thrift::field_ref<T&&> value_ref() && { 10306 return {static_cast<T&&>(this->__fbthrift_field_value), __isset.at(13), __isset.bit(13)}; 10307 } 10308 10309 template <typename..., typename T = ::std::int32_t> 10310 FOLLY_ERASE ::apache::thrift::field_ref<const T&> value() const& { 10311 return {this->__fbthrift_field_value, __isset.at(13), __isset.bit(13)}; 10312 } 10313 10314 template <typename..., typename T = ::std::int32_t> 10315 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> value() const&& { 10316 return {static_cast<const T&&>(this->__fbthrift_field_value), __isset.at(13), __isset.bit(13)}; 10317 } 10318 10319 template <typename..., typename T = ::std::int32_t> 10320 FOLLY_ERASE ::apache::thrift::field_ref<T&> value() & { 10321 return {this->__fbthrift_field_value, __isset.at(13), __isset.bit(13)}; 10322 } 10323 10324 template <typename..., typename T = ::std::int32_t> 10325 FOLLY_ERASE ::apache::thrift::field_ref<T&&> value() && { 10326 return {static_cast<T&&>(this->__fbthrift_field_value), __isset.at(13), __isset.bit(13)}; 10327 } 10328 10329 template <typename..., typename T = ::std::int32_t> 10330 FOLLY_ERASE ::apache::thrift::field_ref<const T&> value_to_name_ref() const& { 10331 return {this->__fbthrift_field_value_to_name, __isset.at(14), __isset.bit(14)}; 10332 } 10333 10334 template <typename..., typename T = ::std::int32_t> 10335 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> value_to_name_ref() const&& { 10336 return {static_cast<const T&&>(this->__fbthrift_field_value_to_name), __isset.at(14), __isset.bit(14)}; 10337 } 10338 10339 template <typename..., typename T = ::std::int32_t> 10340 FOLLY_ERASE ::apache::thrift::field_ref<T&> value_to_name_ref() & { 10341 return {this->__fbthrift_field_value_to_name, __isset.at(14), __isset.bit(14)}; 10342 } 10343 10344 template <typename..., typename T = ::std::int32_t> 10345 FOLLY_ERASE ::apache::thrift::field_ref<T&&> value_to_name_ref() && { 10346 return {static_cast<T&&>(this->__fbthrift_field_value_to_name), __isset.at(14), __isset.bit(14)}; 10347 } 10348 10349 template <typename..., typename T = ::std::int32_t> 10350 FOLLY_ERASE ::apache::thrift::field_ref<const T&> value_to_name() const& { 10351 return {this->__fbthrift_field_value_to_name, __isset.at(14), __isset.bit(14)}; 10352 } 10353 10354 template <typename..., typename T = ::std::int32_t> 10355 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> value_to_name() const&& { 10356 return {static_cast<const T&&>(this->__fbthrift_field_value_to_name), __isset.at(14), __isset.bit(14)}; 10357 } 10358 10359 template <typename..., typename T = ::std::int32_t> 10360 FOLLY_ERASE ::apache::thrift::field_ref<T&> value_to_name() & { 10361 return {this->__fbthrift_field_value_to_name, __isset.at(14), __isset.bit(14)}; 10362 } 10363 10364 template <typename..., typename T = ::std::int32_t> 10365 FOLLY_ERASE ::apache::thrift::field_ref<T&&> value_to_name() && { 10366 return {static_cast<T&&>(this->__fbthrift_field_value_to_name), __isset.at(14), __isset.bit(14)}; 10367 } 10368 10369 template <typename..., typename T = ::std::int32_t> 10370 FOLLY_ERASE ::apache::thrift::field_ref<const T&> values_ref() const& { 10371 return {this->__fbthrift_field_values, __isset.at(15), __isset.bit(15)}; 10372 } 10373 10374 template <typename..., typename T = ::std::int32_t> 10375 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> values_ref() const&& { 10376 return {static_cast<const T&&>(this->__fbthrift_field_values), __isset.at(15), __isset.bit(15)}; 10377 } 10378 10379 template <typename..., typename T = ::std::int32_t> 10380 FOLLY_ERASE ::apache::thrift::field_ref<T&> values_ref() & { 10381 return {this->__fbthrift_field_values, __isset.at(15), __isset.bit(15)}; 10382 } 10383 10384 template <typename..., typename T = ::std::int32_t> 10385 FOLLY_ERASE ::apache::thrift::field_ref<T&&> values_ref() && { 10386 return {static_cast<T&&>(this->__fbthrift_field_values), __isset.at(15), __isset.bit(15)}; 10387 } 10388 10389 template <typename..., typename T = ::std::int32_t> 10390 FOLLY_ERASE ::apache::thrift::field_ref<const T&> values() const& { 10391 return {this->__fbthrift_field_values, __isset.at(15), __isset.bit(15)}; 10392 } 10393 10394 template <typename..., typename T = ::std::int32_t> 10395 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> values() const&& { 10396 return {static_cast<const T&&>(this->__fbthrift_field_values), __isset.at(15), __isset.bit(15)}; 10397 } 10398 10399 template <typename..., typename T = ::std::int32_t> 10400 FOLLY_ERASE ::apache::thrift::field_ref<T&> values() & { 10401 return {this->__fbthrift_field_values, __isset.at(15), __isset.bit(15)}; 10402 } 10403 10404 template <typename..., typename T = ::std::int32_t> 10405 FOLLY_ERASE ::apache::thrift::field_ref<T&&> values() && { 10406 return {static_cast<T&&>(this->__fbthrift_field_values), __isset.at(15), __isset.bit(15)}; 10407 } 10408 10409 template <typename..., typename T = ::std::int32_t> 10410 FOLLY_ERASE ::apache::thrift::field_ref<const T&> id_ref() const& { 10411 return {this->__fbthrift_field_id, __isset.at(16), __isset.bit(16)}; 10412 } 10413 10414 template <typename..., typename T = ::std::int32_t> 10415 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> id_ref() const&& { 10416 return {static_cast<const T&&>(this->__fbthrift_field_id), __isset.at(16), __isset.bit(16)}; 10417 } 10418 10419 template <typename..., typename T = ::std::int32_t> 10420 FOLLY_ERASE ::apache::thrift::field_ref<T&> id_ref() & { 10421 return {this->__fbthrift_field_id, __isset.at(16), __isset.bit(16)}; 10422 } 10423 10424 template <typename..., typename T = ::std::int32_t> 10425 FOLLY_ERASE ::apache::thrift::field_ref<T&&> id_ref() && { 10426 return {static_cast<T&&>(this->__fbthrift_field_id), __isset.at(16), __isset.bit(16)}; 10427 } 10428 10429 template <typename..., typename T = ::std::int32_t> 10430 FOLLY_ERASE ::apache::thrift::field_ref<const T&> id() const& { 10431 return {this->__fbthrift_field_id, __isset.at(16), __isset.bit(16)}; 10432 } 10433 10434 template <typename..., typename T = ::std::int32_t> 10435 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> id() const&& { 10436 return {static_cast<const T&&>(this->__fbthrift_field_id), __isset.at(16), __isset.bit(16)}; 10437 } 10438 10439 template <typename..., typename T = ::std::int32_t> 10440 FOLLY_ERASE ::apache::thrift::field_ref<T&> id() & { 10441 return {this->__fbthrift_field_id, __isset.at(16), __isset.bit(16)}; 10442 } 10443 10444 template <typename..., typename T = ::std::int32_t> 10445 FOLLY_ERASE ::apache::thrift::field_ref<T&&> id() && { 10446 return {static_cast<T&&>(this->__fbthrift_field_id), __isset.at(16), __isset.bit(16)}; 10447 } 10448 10449 template <typename..., typename T = ::std::int32_t> 10450 FOLLY_ERASE ::apache::thrift::field_ref<const T&> ids_ref() const& { 10451 return {this->__fbthrift_field_ids, __isset.at(17), __isset.bit(17)}; 10452 } 10453 10454 template <typename..., typename T = ::std::int32_t> 10455 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> ids_ref() const&& { 10456 return {static_cast<const T&&>(this->__fbthrift_field_ids), __isset.at(17), __isset.bit(17)}; 10457 } 10458 10459 template <typename..., typename T = ::std::int32_t> 10460 FOLLY_ERASE ::apache::thrift::field_ref<T&> ids_ref() & { 10461 return {this->__fbthrift_field_ids, __isset.at(17), __isset.bit(17)}; 10462 } 10463 10464 template <typename..., typename T = ::std::int32_t> 10465 FOLLY_ERASE ::apache::thrift::field_ref<T&&> ids_ref() && { 10466 return {static_cast<T&&>(this->__fbthrift_field_ids), __isset.at(17), __isset.bit(17)}; 10467 } 10468 10469 template <typename..., typename T = ::std::int32_t> 10470 FOLLY_ERASE ::apache::thrift::field_ref<const T&> ids() const& { 10471 return {this->__fbthrift_field_ids, __isset.at(17), __isset.bit(17)}; 10472 } 10473 10474 template <typename..., typename T = ::std::int32_t> 10475 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> ids() const&& { 10476 return {static_cast<const T&&>(this->__fbthrift_field_ids), __isset.at(17), __isset.bit(17)}; 10477 } 10478 10479 template <typename..., typename T = ::std::int32_t> 10480 FOLLY_ERASE ::apache::thrift::field_ref<T&> ids() & { 10481 return {this->__fbthrift_field_ids, __isset.at(17), __isset.bit(17)}; 10482 } 10483 10484 template <typename..., typename T = ::std::int32_t> 10485 FOLLY_ERASE ::apache::thrift::field_ref<T&&> ids() && { 10486 return {static_cast<T&&>(this->__fbthrift_field_ids), __isset.at(17), __isset.bit(17)}; 10487 } 10488 10489 template <typename..., typename T = ::std::int32_t> 10490 FOLLY_ERASE ::apache::thrift::field_ref<const T&> descriptor_ref() const& { 10491 return {this->__fbthrift_field_descriptor, __isset.at(18), __isset.bit(18)}; 10492 } 10493 10494 template <typename..., typename T = ::std::int32_t> 10495 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> descriptor_ref() const&& { 10496 return {static_cast<const T&&>(this->__fbthrift_field_descriptor), __isset.at(18), __isset.bit(18)}; 10497 } 10498 10499 template <typename..., typename T = ::std::int32_t> 10500 FOLLY_ERASE ::apache::thrift::field_ref<T&> descriptor_ref() & { 10501 return {this->__fbthrift_field_descriptor, __isset.at(18), __isset.bit(18)}; 10502 } 10503 10504 template <typename..., typename T = ::std::int32_t> 10505 FOLLY_ERASE ::apache::thrift::field_ref<T&&> descriptor_ref() && { 10506 return {static_cast<T&&>(this->__fbthrift_field_descriptor), __isset.at(18), __isset.bit(18)}; 10507 } 10508 10509 template <typename..., typename T = ::std::int32_t> 10510 FOLLY_ERASE ::apache::thrift::field_ref<const T&> descriptor() const& { 10511 return {this->__fbthrift_field_descriptor, __isset.at(18), __isset.bit(18)}; 10512 } 10513 10514 template <typename..., typename T = ::std::int32_t> 10515 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> descriptor() const&& { 10516 return {static_cast<const T&&>(this->__fbthrift_field_descriptor), __isset.at(18), __isset.bit(18)}; 10517 } 10518 10519 template <typename..., typename T = ::std::int32_t> 10520 FOLLY_ERASE ::apache::thrift::field_ref<T&> descriptor() & { 10521 return {this->__fbthrift_field_descriptor, __isset.at(18), __isset.bit(18)}; 10522 } 10523 10524 template <typename..., typename T = ::std::int32_t> 10525 FOLLY_ERASE ::apache::thrift::field_ref<T&&> descriptor() && { 10526 return {static_cast<T&&>(this->__fbthrift_field_descriptor), __isset.at(18), __isset.bit(18)}; 10527 } 10528 10529 template <typename..., typename T = ::std::int32_t> 10530 FOLLY_ERASE ::apache::thrift::field_ref<const T&> descriptors_ref() const& { 10531 return {this->__fbthrift_field_descriptors, __isset.at(19), __isset.bit(19)}; 10532 } 10533 10534 template <typename..., typename T = ::std::int32_t> 10535 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> descriptors_ref() const&& { 10536 return {static_cast<const T&&>(this->__fbthrift_field_descriptors), __isset.at(19), __isset.bit(19)}; 10537 } 10538 10539 template <typename..., typename T = ::std::int32_t> 10540 FOLLY_ERASE ::apache::thrift::field_ref<T&> descriptors_ref() & { 10541 return {this->__fbthrift_field_descriptors, __isset.at(19), __isset.bit(19)}; 10542 } 10543 10544 template <typename..., typename T = ::std::int32_t> 10545 FOLLY_ERASE ::apache::thrift::field_ref<T&&> descriptors_ref() && { 10546 return {static_cast<T&&>(this->__fbthrift_field_descriptors), __isset.at(19), __isset.bit(19)}; 10547 } 10548 10549 template <typename..., typename T = ::std::int32_t> 10550 FOLLY_ERASE ::apache::thrift::field_ref<const T&> descriptors() const& { 10551 return {this->__fbthrift_field_descriptors, __isset.at(19), __isset.bit(19)}; 10552 } 10553 10554 template <typename..., typename T = ::std::int32_t> 10555 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> descriptors() const&& { 10556 return {static_cast<const T&&>(this->__fbthrift_field_descriptors), __isset.at(19), __isset.bit(19)}; 10557 } 10558 10559 template <typename..., typename T = ::std::int32_t> 10560 FOLLY_ERASE ::apache::thrift::field_ref<T&> descriptors() & { 10561 return {this->__fbthrift_field_descriptors, __isset.at(19), __isset.bit(19)}; 10562 } 10563 10564 template <typename..., typename T = ::std::int32_t> 10565 FOLLY_ERASE ::apache::thrift::field_ref<T&&> descriptors() && { 10566 return {static_cast<T&&>(this->__fbthrift_field_descriptors), __isset.at(19), __isset.bit(19)}; 10567 } 10568 10569 template <typename..., typename T = ::std::int32_t> 10570 FOLLY_ERASE ::apache::thrift::field_ref<const T&> key_ref() const& { 10571 return {this->__fbthrift_field_key, __isset.at(20), __isset.bit(20)}; 10572 } 10573 10574 template <typename..., typename T = ::std::int32_t> 10575 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> key_ref() const&& { 10576 return {static_cast<const T&&>(this->__fbthrift_field_key), __isset.at(20), __isset.bit(20)}; 10577 } 10578 10579 template <typename..., typename T = ::std::int32_t> 10580 FOLLY_ERASE ::apache::thrift::field_ref<T&> key_ref() & { 10581 return {this->__fbthrift_field_key, __isset.at(20), __isset.bit(20)}; 10582 } 10583 10584 template <typename..., typename T = ::std::int32_t> 10585 FOLLY_ERASE ::apache::thrift::field_ref<T&&> key_ref() && { 10586 return {static_cast<T&&>(this->__fbthrift_field_key), __isset.at(20), __isset.bit(20)}; 10587 } 10588 10589 template <typename..., typename T = ::std::int32_t> 10590 FOLLY_ERASE ::apache::thrift::field_ref<const T&> key() const& { 10591 return {this->__fbthrift_field_key, __isset.at(20), __isset.bit(20)}; 10592 } 10593 10594 template <typename..., typename T = ::std::int32_t> 10595 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> key() const&& { 10596 return {static_cast<const T&&>(this->__fbthrift_field_key), __isset.at(20), __isset.bit(20)}; 10597 } 10598 10599 template <typename..., typename T = ::std::int32_t> 10600 FOLLY_ERASE ::apache::thrift::field_ref<T&> key() & { 10601 return {this->__fbthrift_field_key, __isset.at(20), __isset.bit(20)}; 10602 } 10603 10604 template <typename..., typename T = ::std::int32_t> 10605 FOLLY_ERASE ::apache::thrift::field_ref<T&&> key() && { 10606 return {static_cast<T&&>(this->__fbthrift_field_key), __isset.at(20), __isset.bit(20)}; 10607 } 10608 10609 template <typename..., typename T = ::std::int32_t> 10610 FOLLY_ERASE ::apache::thrift::field_ref<const T&> keys_ref() const& { 10611 return {this->__fbthrift_field_keys, __isset.at(21), __isset.bit(21)}; 10612 } 10613 10614 template <typename..., typename T = ::std::int32_t> 10615 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> keys_ref() const&& { 10616 return {static_cast<const T&&>(this->__fbthrift_field_keys), __isset.at(21), __isset.bit(21)}; 10617 } 10618 10619 template <typename..., typename T = ::std::int32_t> 10620 FOLLY_ERASE ::apache::thrift::field_ref<T&> keys_ref() & { 10621 return {this->__fbthrift_field_keys, __isset.at(21), __isset.bit(21)}; 10622 } 10623 10624 template <typename..., typename T = ::std::int32_t> 10625 FOLLY_ERASE ::apache::thrift::field_ref<T&&> keys_ref() && { 10626 return {static_cast<T&&>(this->__fbthrift_field_keys), __isset.at(21), __isset.bit(21)}; 10627 } 10628 10629 template <typename..., typename T = ::std::int32_t> 10630 FOLLY_ERASE ::apache::thrift::field_ref<const T&> keys() const& { 10631 return {this->__fbthrift_field_keys, __isset.at(21), __isset.bit(21)}; 10632 } 10633 10634 template <typename..., typename T = ::std::int32_t> 10635 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> keys() const&& { 10636 return {static_cast<const T&&>(this->__fbthrift_field_keys), __isset.at(21), __isset.bit(21)}; 10637 } 10638 10639 template <typename..., typename T = ::std::int32_t> 10640 FOLLY_ERASE ::apache::thrift::field_ref<T&> keys() & { 10641 return {this->__fbthrift_field_keys, __isset.at(21), __isset.bit(21)}; 10642 } 10643 10644 template <typename..., typename T = ::std::int32_t> 10645 FOLLY_ERASE ::apache::thrift::field_ref<T&&> keys() && { 10646 return {static_cast<T&&>(this->__fbthrift_field_keys), __isset.at(21), __isset.bit(21)}; 10647 } 10648 10649 template <typename..., typename T = ::std::int32_t> 10650 FOLLY_ERASE ::apache::thrift::field_ref<const T&> annotation_ref() const& { 10651 return {this->__fbthrift_field_annotation, __isset.at(22), __isset.bit(22)}; 10652 } 10653 10654 template <typename..., typename T = ::std::int32_t> 10655 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> annotation_ref() const&& { 10656 return {static_cast<const T&&>(this->__fbthrift_field_annotation), __isset.at(22), __isset.bit(22)}; 10657 } 10658 10659 template <typename..., typename T = ::std::int32_t> 10660 FOLLY_ERASE ::apache::thrift::field_ref<T&> annotation_ref() & { 10661 return {this->__fbthrift_field_annotation, __isset.at(22), __isset.bit(22)}; 10662 } 10663 10664 template <typename..., typename T = ::std::int32_t> 10665 FOLLY_ERASE ::apache::thrift::field_ref<T&&> annotation_ref() && { 10666 return {static_cast<T&&>(this->__fbthrift_field_annotation), __isset.at(22), __isset.bit(22)}; 10667 } 10668 10669 template <typename..., typename T = ::std::int32_t> 10670 FOLLY_ERASE ::apache::thrift::field_ref<const T&> annotation() const& { 10671 return {this->__fbthrift_field_annotation, __isset.at(22), __isset.bit(22)}; 10672 } 10673 10674 template <typename..., typename T = ::std::int32_t> 10675 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> annotation() const&& { 10676 return {static_cast<const T&&>(this->__fbthrift_field_annotation), __isset.at(22), __isset.bit(22)}; 10677 } 10678 10679 template <typename..., typename T = ::std::int32_t> 10680 FOLLY_ERASE ::apache::thrift::field_ref<T&> annotation() & { 10681 return {this->__fbthrift_field_annotation, __isset.at(22), __isset.bit(22)}; 10682 } 10683 10684 template <typename..., typename T = ::std::int32_t> 10685 FOLLY_ERASE ::apache::thrift::field_ref<T&&> annotation() && { 10686 return {static_cast<T&&>(this->__fbthrift_field_annotation), __isset.at(22), __isset.bit(22)}; 10687 } 10688 10689 template <typename..., typename T = ::std::int32_t> 10690 FOLLY_ERASE ::apache::thrift::field_ref<const T&> annotations_ref() const& { 10691 return {this->__fbthrift_field_annotations, __isset.at(23), __isset.bit(23)}; 10692 } 10693 10694 template <typename..., typename T = ::std::int32_t> 10695 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> annotations_ref() const&& { 10696 return {static_cast<const T&&>(this->__fbthrift_field_annotations), __isset.at(23), __isset.bit(23)}; 10697 } 10698 10699 template <typename..., typename T = ::std::int32_t> 10700 FOLLY_ERASE ::apache::thrift::field_ref<T&> annotations_ref() & { 10701 return {this->__fbthrift_field_annotations, __isset.at(23), __isset.bit(23)}; 10702 } 10703 10704 template <typename..., typename T = ::std::int32_t> 10705 FOLLY_ERASE ::apache::thrift::field_ref<T&&> annotations_ref() && { 10706 return {static_cast<T&&>(this->__fbthrift_field_annotations), __isset.at(23), __isset.bit(23)}; 10707 } 10708 10709 template <typename..., typename T = ::std::int32_t> 10710 FOLLY_ERASE ::apache::thrift::field_ref<const T&> annotations() const& { 10711 return {this->__fbthrift_field_annotations, __isset.at(23), __isset.bit(23)}; 10712 } 10713 10714 template <typename..., typename T = ::std::int32_t> 10715 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> annotations() const&& { 10716 return {static_cast<const T&&>(this->__fbthrift_field_annotations), __isset.at(23), __isset.bit(23)}; 10717 } 10718 10719 template <typename..., typename T = ::std::int32_t> 10720 FOLLY_ERASE ::apache::thrift::field_ref<T&> annotations() & { 10721 return {this->__fbthrift_field_annotations, __isset.at(23), __isset.bit(23)}; 10722 } 10723 10724 template <typename..., typename T = ::std::int32_t> 10725 FOLLY_ERASE ::apache::thrift::field_ref<T&&> annotations() && { 10726 return {static_cast<T&&>(this->__fbthrift_field_annotations), __isset.at(23), __isset.bit(23)}; 10727 } 10728 10729 template <typename..., typename T = ::std::int32_t> 10730 FOLLY_ERASE ::apache::thrift::field_ref<const T&> member_ref() const& { 10731 return {this->__fbthrift_field_member, __isset.at(24), __isset.bit(24)}; 10732 } 10733 10734 template <typename..., typename T = ::std::int32_t> 10735 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> member_ref() const&& { 10736 return {static_cast<const T&&>(this->__fbthrift_field_member), __isset.at(24), __isset.bit(24)}; 10737 } 10738 10739 template <typename..., typename T = ::std::int32_t> 10740 FOLLY_ERASE ::apache::thrift::field_ref<T&> member_ref() & { 10741 return {this->__fbthrift_field_member, __isset.at(24), __isset.bit(24)}; 10742 } 10743 10744 template <typename..., typename T = ::std::int32_t> 10745 FOLLY_ERASE ::apache::thrift::field_ref<T&&> member_ref() && { 10746 return {static_cast<T&&>(this->__fbthrift_field_member), __isset.at(24), __isset.bit(24)}; 10747 } 10748 10749 template <typename..., typename T = ::std::int32_t> 10750 FOLLY_ERASE ::apache::thrift::field_ref<const T&> member() const& { 10751 return {this->__fbthrift_field_member, __isset.at(24), __isset.bit(24)}; 10752 } 10753 10754 template <typename..., typename T = ::std::int32_t> 10755 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> member() const&& { 10756 return {static_cast<const T&&>(this->__fbthrift_field_member), __isset.at(24), __isset.bit(24)}; 10757 } 10758 10759 template <typename..., typename T = ::std::int32_t> 10760 FOLLY_ERASE ::apache::thrift::field_ref<T&> member() & { 10761 return {this->__fbthrift_field_member, __isset.at(24), __isset.bit(24)}; 10762 } 10763 10764 template <typename..., typename T = ::std::int32_t> 10765 FOLLY_ERASE ::apache::thrift::field_ref<T&&> member() && { 10766 return {static_cast<T&&>(this->__fbthrift_field_member), __isset.at(24), __isset.bit(24)}; 10767 } 10768 10769 template <typename..., typename T = ::std::int32_t> 10770 FOLLY_ERASE ::apache::thrift::field_ref<const T&> members_ref() const& { 10771 return {this->__fbthrift_field_members, __isset.at(25), __isset.bit(25)}; 10772 } 10773 10774 template <typename..., typename T = ::std::int32_t> 10775 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> members_ref() const&& { 10776 return {static_cast<const T&&>(this->__fbthrift_field_members), __isset.at(25), __isset.bit(25)}; 10777 } 10778 10779 template <typename..., typename T = ::std::int32_t> 10780 FOLLY_ERASE ::apache::thrift::field_ref<T&> members_ref() & { 10781 return {this->__fbthrift_field_members, __isset.at(25), __isset.bit(25)}; 10782 } 10783 10784 template <typename..., typename T = ::std::int32_t> 10785 FOLLY_ERASE ::apache::thrift::field_ref<T&&> members_ref() && { 10786 return {static_cast<T&&>(this->__fbthrift_field_members), __isset.at(25), __isset.bit(25)}; 10787 } 10788 10789 template <typename..., typename T = ::std::int32_t> 10790 FOLLY_ERASE ::apache::thrift::field_ref<const T&> members() const& { 10791 return {this->__fbthrift_field_members, __isset.at(25), __isset.bit(25)}; 10792 } 10793 10794 template <typename..., typename T = ::std::int32_t> 10795 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> members() const&& { 10796 return {static_cast<const T&&>(this->__fbthrift_field_members), __isset.at(25), __isset.bit(25)}; 10797 } 10798 10799 template <typename..., typename T = ::std::int32_t> 10800 FOLLY_ERASE ::apache::thrift::field_ref<T&> members() & { 10801 return {this->__fbthrift_field_members, __isset.at(25), __isset.bit(25)}; 10802 } 10803 10804 template <typename..., typename T = ::std::int32_t> 10805 FOLLY_ERASE ::apache::thrift::field_ref<T&&> members() && { 10806 return {static_cast<T&&>(this->__fbthrift_field_members), __isset.at(25), __isset.bit(25)}; 10807 } 10808 10809 template <typename..., typename T = ::std::int32_t> 10810 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field_ref() const& { 10811 return {this->__fbthrift_field_field, __isset.at(26), __isset.bit(26)}; 10812 } 10813 10814 template <typename..., typename T = ::std::int32_t> 10815 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field_ref() const&& { 10816 return {static_cast<const T&&>(this->__fbthrift_field_field), __isset.at(26), __isset.bit(26)}; 10817 } 10818 10819 template <typename..., typename T = ::std::int32_t> 10820 FOLLY_ERASE ::apache::thrift::field_ref<T&> field_ref() & { 10821 return {this->__fbthrift_field_field, __isset.at(26), __isset.bit(26)}; 10822 } 10823 10824 template <typename..., typename T = ::std::int32_t> 10825 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field_ref() && { 10826 return {static_cast<T&&>(this->__fbthrift_field_field), __isset.at(26), __isset.bit(26)}; 10827 } 10828 10829 template <typename..., typename T = ::std::int32_t> 10830 FOLLY_ERASE ::apache::thrift::field_ref<const T&> field() const& { 10831 return {this->__fbthrift_field_field, __isset.at(26), __isset.bit(26)}; 10832 } 10833 10834 template <typename..., typename T = ::std::int32_t> 10835 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> field() const&& { 10836 return {static_cast<const T&&>(this->__fbthrift_field_field), __isset.at(26), __isset.bit(26)}; 10837 } 10838 10839 template <typename..., typename T = ::std::int32_t> 10840 FOLLY_ERASE ::apache::thrift::field_ref<T&> field() & { 10841 return {this->__fbthrift_field_field, __isset.at(26), __isset.bit(26)}; 10842 } 10843 10844 template <typename..., typename T = ::std::int32_t> 10845 FOLLY_ERASE ::apache::thrift::field_ref<T&&> field() && { 10846 return {static_cast<T&&>(this->__fbthrift_field_field), __isset.at(26), __isset.bit(26)}; 10847 } 10848 10849 template <typename..., typename T = ::std::int32_t> 10850 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fields_ref() const& { 10851 return {this->__fbthrift_field_fields, __isset.at(27), __isset.bit(27)}; 10852 } 10853 10854 template <typename..., typename T = ::std::int32_t> 10855 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fields_ref() const&& { 10856 return {static_cast<const T&&>(this->__fbthrift_field_fields), __isset.at(27), __isset.bit(27)}; 10857 } 10858 10859 template <typename..., typename T = ::std::int32_t> 10860 FOLLY_ERASE ::apache::thrift::field_ref<T&> fields_ref() & { 10861 return {this->__fbthrift_field_fields, __isset.at(27), __isset.bit(27)}; 10862 } 10863 10864 template <typename..., typename T = ::std::int32_t> 10865 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fields_ref() && { 10866 return {static_cast<T&&>(this->__fbthrift_field_fields), __isset.at(27), __isset.bit(27)}; 10867 } 10868 10869 template <typename..., typename T = ::std::int32_t> 10870 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fields() const& { 10871 return {this->__fbthrift_field_fields, __isset.at(27), __isset.bit(27)}; 10872 } 10873 10874 template <typename..., typename T = ::std::int32_t> 10875 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fields() const&& { 10876 return {static_cast<const T&&>(this->__fbthrift_field_fields), __isset.at(27), __isset.bit(27)}; 10877 } 10878 10879 template <typename..., typename T = ::std::int32_t> 10880 FOLLY_ERASE ::apache::thrift::field_ref<T&> fields() & { 10881 return {this->__fbthrift_field_fields, __isset.at(27), __isset.bit(27)}; 10882 } 10883 10884 template <typename..., typename T = ::std::int32_t> 10885 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fields() && { 10886 return {static_cast<T&&>(this->__fbthrift_field_fields), __isset.at(27), __isset.bit(27)}; 10887 } 10888 10889 ::std::int32_t get_get() const { 10890 return __fbthrift_field_get; 10891 } 10892 10893 [[deprecated("Use `FOO.get_ref() = BAR;` instead of `FOO.set_get(BAR);`")]] 10894 ::std::int32_t& set_get(::std::int32_t get_) { 10895 get_ref() = get_; 10896 return __fbthrift_field_get; 10897 } 10898 10899 ::std::int32_t get_getter() const { 10900 return __fbthrift_field_getter; 10901 } 10902 10903 [[deprecated("Use `FOO.getter_ref() = BAR;` instead of `FOO.set_getter(BAR);`")]] 10904 ::std::int32_t& set_getter(::std::int32_t getter_) { 10905 getter_ref() = getter_; 10906 return __fbthrift_field_getter; 10907 } 10908 10909 ::std::int32_t get_lists() const { 10910 return __fbthrift_field_lists; 10911 } 10912 10913 [[deprecated("Use `FOO.lists_ref() = BAR;` instead of `FOO.set_lists(BAR);`")]] 10914 ::std::int32_t& set_lists(::std::int32_t lists_) { 10915 lists_ref() = lists_; 10916 return __fbthrift_field_lists; 10917 } 10918 10919 ::std::int32_t get_maps() const { 10920 return __fbthrift_field_maps; 10921 } 10922 10923 [[deprecated("Use `FOO.maps_ref() = BAR;` instead of `FOO.set_maps(BAR);`")]] 10924 ::std::int32_t& set_maps(::std::int32_t maps_) { 10925 maps_ref() = maps_; 10926 return __fbthrift_field_maps; 10927 } 10928 10929 ::std::int32_t get_name() const { 10930 return __fbthrift_field_name; 10931 } 10932 10933 [[deprecated("Use `FOO.name_ref() = BAR;` instead of `FOO.set_name(BAR);`")]] 10934 ::std::int32_t& set_name(::std::int32_t name_) { 10935 name_ref() = name_; 10936 return __fbthrift_field_name; 10937 } 10938 10939 ::std::int32_t get_name_to_value() const { 10940 return __fbthrift_field_name_to_value; 10941 } 10942 10943 [[deprecated("Use `FOO.name_to_value_ref() = BAR;` instead of `FOO.set_name_to_value(BAR);`")]] 10944 ::std::int32_t& set_name_to_value(::std::int32_t name_to_value_) { 10945 name_to_value_ref() = name_to_value_; 10946 return __fbthrift_field_name_to_value; 10947 } 10948 10949 ::std::int32_t get_names() const { 10950 return __fbthrift_field_names; 10951 } 10952 10953 [[deprecated("Use `FOO.names_ref() = BAR;` instead of `FOO.set_names(BAR);`")]] 10954 ::std::int32_t& set_names(::std::int32_t names_) { 10955 names_ref() = names_; 10956 return __fbthrift_field_names; 10957 } 10958 10959 ::std::int32_t get_prefix_tree() const { 10960 return __fbthrift_field_prefix_tree; 10961 } 10962 10963 [[deprecated("Use `FOO.prefix_tree_ref() = BAR;` instead of `FOO.set_prefix_tree(BAR);`")]] 10964 ::std::int32_t& set_prefix_tree(::std::int32_t prefix_tree_) { 10965 prefix_tree_ref() = prefix_tree_; 10966 return __fbthrift_field_prefix_tree; 10967 } 10968 10969 ::std::int32_t get_sets() const { 10970 return __fbthrift_field_sets; 10971 } 10972 10973 [[deprecated("Use `FOO.sets_ref() = BAR;` instead of `FOO.set_sets(BAR);`")]] 10974 ::std::int32_t& set_sets(::std::int32_t sets_) { 10975 sets_ref() = sets_; 10976 return __fbthrift_field_sets; 10977 } 10978 10979 ::std::int32_t get_setter() const { 10980 return __fbthrift_field_setter; 10981 } 10982 10983 [[deprecated("Use `FOO.setter_ref() = BAR;` instead of `FOO.set_setter(BAR);`")]] 10984 ::std::int32_t& set_setter(::std::int32_t setter_) { 10985 setter_ref() = setter_; 10986 return __fbthrift_field_setter; 10987 } 10988 10989 ::std::int32_t get_str() const { 10990 return __fbthrift_field_str; 10991 } 10992 10993 [[deprecated("Use `FOO.str_ref() = BAR;` instead of `FOO.set_str(BAR);`")]] 10994 ::std::int32_t& set_str(::std::int32_t str_) { 10995 str_ref() = str_; 10996 return __fbthrift_field_str; 10997 } 10998 10999 ::std::int32_t get_strings() const { 11000 return __fbthrift_field_strings; 11001 } 11002 11003 [[deprecated("Use `FOO.strings_ref() = BAR;` instead of `FOO.set_strings(BAR);`")]] 11004 ::std::int32_t& set_strings(::std::int32_t strings_) { 11005 strings_ref() = strings_; 11006 return __fbthrift_field_strings; 11007 } 11008 11009 ::std::int32_t get_type() const { 11010 return __fbthrift_field_type; 11011 } 11012 11013 [[deprecated("Use `FOO.type_ref() = BAR;` instead of `FOO.set_type(BAR);`")]] 11014 ::std::int32_t& set_type(::std::int32_t type_) { 11015 type_ref() = type_; 11016 return __fbthrift_field_type; 11017 } 11018 11019 ::std::int32_t get_value() const { 11020 return __fbthrift_field_value; 11021 } 11022 11023 [[deprecated("Use `FOO.value_ref() = BAR;` instead of `FOO.set_value(BAR);`")]] 11024 ::std::int32_t& set_value(::std::int32_t value_) { 11025 value_ref() = value_; 11026 return __fbthrift_field_value; 11027 } 11028 11029 ::std::int32_t get_value_to_name() const { 11030 return __fbthrift_field_value_to_name; 11031 } 11032 11033 [[deprecated("Use `FOO.value_to_name_ref() = BAR;` instead of `FOO.set_value_to_name(BAR);`")]] 11034 ::std::int32_t& set_value_to_name(::std::int32_t value_to_name_) { 11035 value_to_name_ref() = value_to_name_; 11036 return __fbthrift_field_value_to_name; 11037 } 11038 11039 ::std::int32_t get_values() const { 11040 return __fbthrift_field_values; 11041 } 11042 11043 [[deprecated("Use `FOO.values_ref() = BAR;` instead of `FOO.set_values(BAR);`")]] 11044 ::std::int32_t& set_values(::std::int32_t values_) { 11045 values_ref() = values_; 11046 return __fbthrift_field_values; 11047 } 11048 11049 ::std::int32_t get_id() const { 11050 return __fbthrift_field_id; 11051 } 11052 11053 [[deprecated("Use `FOO.id_ref() = BAR;` instead of `FOO.set_id(BAR);`")]] 11054 ::std::int32_t& set_id(::std::int32_t id_) { 11055 id_ref() = id_; 11056 return __fbthrift_field_id; 11057 } 11058 11059 ::std::int32_t get_ids() const { 11060 return __fbthrift_field_ids; 11061 } 11062 11063 [[deprecated("Use `FOO.ids_ref() = BAR;` instead of `FOO.set_ids(BAR);`")]] 11064 ::std::int32_t& set_ids(::std::int32_t ids_) { 11065 ids_ref() = ids_; 11066 return __fbthrift_field_ids; 11067 } 11068 11069 ::std::int32_t get_descriptor() const { 11070 return __fbthrift_field_descriptor; 11071 } 11072 11073 [[deprecated("Use `FOO.descriptor_ref() = BAR;` instead of `FOO.set_descriptor(BAR);`")]] 11074 ::std::int32_t& set_descriptor(::std::int32_t descriptor_) { 11075 descriptor_ref() = descriptor_; 11076 return __fbthrift_field_descriptor; 11077 } 11078 11079 ::std::int32_t get_descriptors() const { 11080 return __fbthrift_field_descriptors; 11081 } 11082 11083 [[deprecated("Use `FOO.descriptors_ref() = BAR;` instead of `FOO.set_descriptors(BAR);`")]] 11084 ::std::int32_t& set_descriptors(::std::int32_t descriptors_) { 11085 descriptors_ref() = descriptors_; 11086 return __fbthrift_field_descriptors; 11087 } 11088 11089 ::std::int32_t get_key() const { 11090 return __fbthrift_field_key; 11091 } 11092 11093 [[deprecated("Use `FOO.key_ref() = BAR;` instead of `FOO.set_key(BAR);`")]] 11094 ::std::int32_t& set_key(::std::int32_t key_) { 11095 key_ref() = key_; 11096 return __fbthrift_field_key; 11097 } 11098 11099 ::std::int32_t get_keys() const { 11100 return __fbthrift_field_keys; 11101 } 11102 11103 [[deprecated("Use `FOO.keys_ref() = BAR;` instead of `FOO.set_keys(BAR);`")]] 11104 ::std::int32_t& set_keys(::std::int32_t keys_) { 11105 keys_ref() = keys_; 11106 return __fbthrift_field_keys; 11107 } 11108 11109 ::std::int32_t get_annotation() const { 11110 return __fbthrift_field_annotation; 11111 } 11112 11113 [[deprecated("Use `FOO.annotation_ref() = BAR;` instead of `FOO.set_annotation(BAR);`")]] 11114 ::std::int32_t& set_annotation(::std::int32_t annotation_) { 11115 annotation_ref() = annotation_; 11116 return __fbthrift_field_annotation; 11117 } 11118 11119 ::std::int32_t get_annotations() const { 11120 return __fbthrift_field_annotations; 11121 } 11122 11123 [[deprecated("Use `FOO.annotations_ref() = BAR;` instead of `FOO.set_annotations(BAR);`")]] 11124 ::std::int32_t& set_annotations(::std::int32_t annotations_) { 11125 annotations_ref() = annotations_; 11126 return __fbthrift_field_annotations; 11127 } 11128 11129 ::std::int32_t get_member() const { 11130 return __fbthrift_field_member; 11131 } 11132 11133 [[deprecated("Use `FOO.member_ref() = BAR;` instead of `FOO.set_member(BAR);`")]] 11134 ::std::int32_t& set_member(::std::int32_t member_) { 11135 member_ref() = member_; 11136 return __fbthrift_field_member; 11137 } 11138 11139 ::std::int32_t get_members() const { 11140 return __fbthrift_field_members; 11141 } 11142 11143 [[deprecated("Use `FOO.members_ref() = BAR;` instead of `FOO.set_members(BAR);`")]] 11144 ::std::int32_t& set_members(::std::int32_t members_) { 11145 members_ref() = members_; 11146 return __fbthrift_field_members; 11147 } 11148 11149 ::std::int32_t get_field() const { 11150 return __fbthrift_field_field; 11151 } 11152 11153 [[deprecated("Use `FOO.field_ref() = BAR;` instead of `FOO.set_field(BAR);`")]] 11154 ::std::int32_t& set_field(::std::int32_t field_) { 11155 field_ref() = field_; 11156 return __fbthrift_field_field; 11157 } 11158 11159 ::std::int32_t get_fields() const { 11160 return __fbthrift_field_fields; 11161 } 11162 11163 [[deprecated("Use `FOO.fields_ref() = BAR;` instead of `FOO.set_fields(BAR);`")]] 11164 ::std::int32_t& set_fields(::std::int32_t fields_) { 11165 fields_ref() = fields_; 11166 return __fbthrift_field_fields; 11167 } 11168 11169 template <class Protocol_> 11170 uint32_t read(Protocol_* iprot); 11171 template <class Protocol_> 11172 uint32_t serializedSize(Protocol_ const* prot_) const; 11173 template <class Protocol_> 11174 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 11175 template <class Protocol_> 11176 uint32_t write(Protocol_* prot_) const; 11177 11178 private: 11179 template <class Protocol_> 11180 void readNoXfer(Protocol_* iprot); 11181 11182 friend class ::apache::thrift::Cpp2Ops<struct_with_special_names>; 11183 friend void swap(struct_with_special_names& a, struct_with_special_names& b); 11184 }; 11185 11186 template <class Protocol_> 11187 uint32_t struct_with_special_names::read(Protocol_* iprot) { 11188 auto _xferStart = iprot->getCursorPosition(); 11189 readNoXfer(iprot); 11190 return iprot->getCursorPosition() - _xferStart; 11191 } 11192 11193 }} // test_cpp2::cpp_reflection 11194 namespace test_cpp2 { namespace cpp_reflection { 11195 class struct_with_indirections final { 11196 private: 11197 friend struct ::apache::thrift::detail::st::struct_private_access; 11198 11199 // used by a static_assert in the corresponding source 11200 static constexpr bool __fbthrift_cpp2_gen_json = false; 11201 static constexpr bool __fbthrift_cpp2_gen_nimble = false; 11202 static constexpr bool __fbthrift_cpp2_gen_has_thrift_uri = false; 11203 11204 void __fbthrift_clear(); 11205 11206 public: 11207 using __fbthrift_cpp2_type = struct_with_indirections; 11208 static constexpr bool __fbthrift_cpp2_is_union = 11209 false; 11210 11211 11212 public: 11213 11214 struct_with_indirections(); 11215 11216 // FragileConstructor for use in initialization lists only. 11217 [[deprecated("This constructor is deprecated")]] 11218 struct_with_indirections(apache::thrift::FragileConstructor, ::std::int32_t real__arg, ::test_cpp2::cpp_reflection::FakeI32 fake__arg, ::test_cpp2::cpp_reflection::HasANumber number__arg, ::test_cpp2::cpp_reflection::HasAResult result__arg, ::test_cpp2::cpp_reflection::HasAPhrase phrase__arg); 11219 11220 struct_with_indirections(struct_with_indirections&&) noexcept; 11221 11222 struct_with_indirections(const struct_with_indirections& src); 11223 11224 11225 struct_with_indirections& operator=(struct_with_indirections&&) noexcept; 11226 struct_with_indirections& operator=(const struct_with_indirections& src); 11227 11228 ~struct_with_indirections(); 11229 11230 private: 11231 ::std::int32_t __fbthrift_field_real; 11232 private: 11233 ::test_cpp2::cpp_reflection::FakeI32 __fbthrift_field_fake; 11234 private: 11235 ::test_cpp2::cpp_reflection::HasANumber __fbthrift_field_number; 11236 private: 11237 ::test_cpp2::cpp_reflection::HasAResult __fbthrift_field_result; 11238 private: 11239 ::test_cpp2::cpp_reflection::HasAPhrase __fbthrift_field_phrase; 11240 private: 11241 apache::thrift::detail::isset_bitset<5, false> __isset; 11242 11243 public: 11244 11245 bool operator==(const struct_with_indirections&) const; 11246 bool operator<(const struct_with_indirections&) const; 11247 11248 template <typename..., typename T = ::std::int32_t> 11249 FOLLY_ERASE ::apache::thrift::field_ref<const T&> real_ref() const& { 11250 return {this->__fbthrift_field_real, __isset.at(0), __isset.bit(0)}; 11251 } 11252 11253 template <typename..., typename T = ::std::int32_t> 11254 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> real_ref() const&& { 11255 return {static_cast<const T&&>(this->__fbthrift_field_real), __isset.at(0), __isset.bit(0)}; 11256 } 11257 11258 template <typename..., typename T = ::std::int32_t> 11259 FOLLY_ERASE ::apache::thrift::field_ref<T&> real_ref() & { 11260 return {this->__fbthrift_field_real, __isset.at(0), __isset.bit(0)}; 11261 } 11262 11263 template <typename..., typename T = ::std::int32_t> 11264 FOLLY_ERASE ::apache::thrift::field_ref<T&&> real_ref() && { 11265 return {static_cast<T&&>(this->__fbthrift_field_real), __isset.at(0), __isset.bit(0)}; 11266 } 11267 11268 template <typename..., typename T = ::std::int32_t> 11269 FOLLY_ERASE ::apache::thrift::field_ref<const T&> real() const& { 11270 return {this->__fbthrift_field_real, __isset.at(0), __isset.bit(0)}; 11271 } 11272 11273 template <typename..., typename T = ::std::int32_t> 11274 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> real() const&& { 11275 return {static_cast<const T&&>(this->__fbthrift_field_real), __isset.at(0), __isset.bit(0)}; 11276 } 11277 11278 template <typename..., typename T = ::std::int32_t> 11279 FOLLY_ERASE ::apache::thrift::field_ref<T&> real() & { 11280 return {this->__fbthrift_field_real, __isset.at(0), __isset.bit(0)}; 11281 } 11282 11283 template <typename..., typename T = ::std::int32_t> 11284 FOLLY_ERASE ::apache::thrift::field_ref<T&&> real() && { 11285 return {static_cast<T&&>(this->__fbthrift_field_real), __isset.at(0), __isset.bit(0)}; 11286 } 11287 11288 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11289 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fake_ref() const& { 11290 return {this->__fbthrift_field_fake, __isset.at(1), __isset.bit(1)}; 11291 } 11292 11293 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11294 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fake_ref() const&& { 11295 return {static_cast<const T&&>(this->__fbthrift_field_fake), __isset.at(1), __isset.bit(1)}; 11296 } 11297 11298 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11299 FOLLY_ERASE ::apache::thrift::field_ref<T&> fake_ref() & { 11300 return {this->__fbthrift_field_fake, __isset.at(1), __isset.bit(1)}; 11301 } 11302 11303 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11304 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fake_ref() && { 11305 return {static_cast<T&&>(this->__fbthrift_field_fake), __isset.at(1), __isset.bit(1)}; 11306 } 11307 11308 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11309 FOLLY_ERASE ::apache::thrift::field_ref<const T&> fake() const& { 11310 return {this->__fbthrift_field_fake, __isset.at(1), __isset.bit(1)}; 11311 } 11312 11313 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11314 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> fake() const&& { 11315 return {static_cast<const T&&>(this->__fbthrift_field_fake), __isset.at(1), __isset.bit(1)}; 11316 } 11317 11318 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11319 FOLLY_ERASE ::apache::thrift::field_ref<T&> fake() & { 11320 return {this->__fbthrift_field_fake, __isset.at(1), __isset.bit(1)}; 11321 } 11322 11323 template <typename..., typename T = ::test_cpp2::cpp_reflection::FakeI32> 11324 FOLLY_ERASE ::apache::thrift::field_ref<T&&> fake() && { 11325 return {static_cast<T&&>(this->__fbthrift_field_fake), __isset.at(1), __isset.bit(1)}; 11326 } 11327 11328 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11329 FOLLY_ERASE ::apache::thrift::field_ref<const T&> number_ref() const& { 11330 return {this->__fbthrift_field_number, __isset.at(2), __isset.bit(2)}; 11331 } 11332 11333 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11334 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> number_ref() const&& { 11335 return {static_cast<const T&&>(this->__fbthrift_field_number), __isset.at(2), __isset.bit(2)}; 11336 } 11337 11338 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11339 FOLLY_ERASE ::apache::thrift::field_ref<T&> number_ref() & { 11340 return {this->__fbthrift_field_number, __isset.at(2), __isset.bit(2)}; 11341 } 11342 11343 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11344 FOLLY_ERASE ::apache::thrift::field_ref<T&&> number_ref() && { 11345 return {static_cast<T&&>(this->__fbthrift_field_number), __isset.at(2), __isset.bit(2)}; 11346 } 11347 11348 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11349 FOLLY_ERASE ::apache::thrift::field_ref<const T&> number() const& { 11350 return {this->__fbthrift_field_number, __isset.at(2), __isset.bit(2)}; 11351 } 11352 11353 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11354 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> number() const&& { 11355 return {static_cast<const T&&>(this->__fbthrift_field_number), __isset.at(2), __isset.bit(2)}; 11356 } 11357 11358 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11359 FOLLY_ERASE ::apache::thrift::field_ref<T&> number() & { 11360 return {this->__fbthrift_field_number, __isset.at(2), __isset.bit(2)}; 11361 } 11362 11363 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasANumber> 11364 FOLLY_ERASE ::apache::thrift::field_ref<T&&> number() && { 11365 return {static_cast<T&&>(this->__fbthrift_field_number), __isset.at(2), __isset.bit(2)}; 11366 } 11367 11368 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11369 FOLLY_ERASE ::apache::thrift::field_ref<const T&> result_ref() const& { 11370 return {this->__fbthrift_field_result, __isset.at(3), __isset.bit(3)}; 11371 } 11372 11373 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11374 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> result_ref() const&& { 11375 return {static_cast<const T&&>(this->__fbthrift_field_result), __isset.at(3), __isset.bit(3)}; 11376 } 11377 11378 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11379 FOLLY_ERASE ::apache::thrift::field_ref<T&> result_ref() & { 11380 return {this->__fbthrift_field_result, __isset.at(3), __isset.bit(3)}; 11381 } 11382 11383 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11384 FOLLY_ERASE ::apache::thrift::field_ref<T&&> result_ref() && { 11385 return {static_cast<T&&>(this->__fbthrift_field_result), __isset.at(3), __isset.bit(3)}; 11386 } 11387 11388 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11389 FOLLY_ERASE ::apache::thrift::field_ref<const T&> result() const& { 11390 return {this->__fbthrift_field_result, __isset.at(3), __isset.bit(3)}; 11391 } 11392 11393 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11394 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> result() const&& { 11395 return {static_cast<const T&&>(this->__fbthrift_field_result), __isset.at(3), __isset.bit(3)}; 11396 } 11397 11398 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11399 FOLLY_ERASE ::apache::thrift::field_ref<T&> result() & { 11400 return {this->__fbthrift_field_result, __isset.at(3), __isset.bit(3)}; 11401 } 11402 11403 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAResult> 11404 FOLLY_ERASE ::apache::thrift::field_ref<T&&> result() && { 11405 return {static_cast<T&&>(this->__fbthrift_field_result), __isset.at(3), __isset.bit(3)}; 11406 } 11407 11408 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11409 FOLLY_ERASE ::apache::thrift::field_ref<const T&> phrase_ref() const& { 11410 return {this->__fbthrift_field_phrase, __isset.at(4), __isset.bit(4)}; 11411 } 11412 11413 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11414 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> phrase_ref() const&& { 11415 return {static_cast<const T&&>(this->__fbthrift_field_phrase), __isset.at(4), __isset.bit(4)}; 11416 } 11417 11418 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11419 FOLLY_ERASE ::apache::thrift::field_ref<T&> phrase_ref() & { 11420 return {this->__fbthrift_field_phrase, __isset.at(4), __isset.bit(4)}; 11421 } 11422 11423 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11424 FOLLY_ERASE ::apache::thrift::field_ref<T&&> phrase_ref() && { 11425 return {static_cast<T&&>(this->__fbthrift_field_phrase), __isset.at(4), __isset.bit(4)}; 11426 } 11427 11428 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11429 FOLLY_ERASE ::apache::thrift::field_ref<const T&> phrase() const& { 11430 return {this->__fbthrift_field_phrase, __isset.at(4), __isset.bit(4)}; 11431 } 11432 11433 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11434 FOLLY_ERASE ::apache::thrift::field_ref<const T&&> phrase() const&& { 11435 return {static_cast<const T&&>(this->__fbthrift_field_phrase), __isset.at(4), __isset.bit(4)}; 11436 } 11437 11438 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11439 FOLLY_ERASE ::apache::thrift::field_ref<T&> phrase() & { 11440 return {this->__fbthrift_field_phrase, __isset.at(4), __isset.bit(4)}; 11441 } 11442 11443 template <typename..., typename T = ::test_cpp2::cpp_reflection::HasAPhrase> 11444 FOLLY_ERASE ::apache::thrift::field_ref<T&&> phrase() && { 11445 return {static_cast<T&&>(this->__fbthrift_field_phrase), __isset.at(4), __isset.bit(4)}; 11446 } 11447 11448 ::std::int32_t get_real() const { 11449 return __fbthrift_field_real; 11450 } 11451 11452 [[deprecated("Use `FOO.real_ref() = BAR;` instead of `FOO.set_real(BAR);`")]] 11453 ::std::int32_t& set_real(::std::int32_t real_) { 11454 real_ref() = real_; 11455 return __fbthrift_field_real; 11456 } 11457 11458 ::test_cpp2::cpp_reflection::FakeI32 get_fake() const { 11459 return __fbthrift_field_fake; 11460 } 11461 11462 [[deprecated("Use `FOO.fake_ref() = BAR;` instead of `FOO.set_fake(BAR);`")]] 11463 ::test_cpp2::cpp_reflection::FakeI32& set_fake(::test_cpp2::cpp_reflection::FakeI32 fake_) { 11464 fake_ref() = fake_; 11465 return __fbthrift_field_fake; 11466 } 11467 11468 ::test_cpp2::cpp_reflection::HasANumber get_number() const { 11469 return __fbthrift_field_number; 11470 } 11471 11472 [[deprecated("Use `FOO.number_ref() = BAR;` instead of `FOO.set_number(BAR);`")]] 11473 ::test_cpp2::cpp_reflection::HasANumber& set_number(::test_cpp2::cpp_reflection::HasANumber number_) { 11474 number_ref() = number_; 11475 return __fbthrift_field_number; 11476 } 11477 11478 ::test_cpp2::cpp_reflection::HasAResult get_result() const { 11479 return __fbthrift_field_result; 11480 } 11481 11482 [[deprecated("Use `FOO.result_ref() = BAR;` instead of `FOO.set_result(BAR);`")]] 11483 ::test_cpp2::cpp_reflection::HasAResult& set_result(::test_cpp2::cpp_reflection::HasAResult result_) { 11484 result_ref() = result_; 11485 return __fbthrift_field_result; 11486 } 11487 11488 const ::test_cpp2::cpp_reflection::HasAPhrase& get_phrase() const& { 11489 return __fbthrift_field_phrase; 11490 } 11491 11492 ::test_cpp2::cpp_reflection::HasAPhrase get_phrase() && { 11493 return std::move(__fbthrift_field_phrase); 11494 } 11495 11496 template <typename T_struct_with_indirections_phrase_struct_setter = ::test_cpp2::cpp_reflection::HasAPhrase> 11497 [[deprecated("Use `FOO.phrase_ref() = BAR;` instead of `FOO.set_phrase(BAR);`")]] 11498 ::test_cpp2::cpp_reflection::HasAPhrase& set_phrase(T_struct_with_indirections_phrase_struct_setter&& phrase_) { 11499 phrase_ref() = std::forward<T_struct_with_indirections_phrase_struct_setter>(phrase_); 11500 return __fbthrift_field_phrase; 11501 } 11502 11503 template <class Protocol_> 11504 uint32_t read(Protocol_* iprot); 11505 template <class Protocol_> 11506 uint32_t serializedSize(Protocol_ const* prot_) const; 11507 template <class Protocol_> 11508 uint32_t serializedSizeZC(Protocol_ const* prot_) const; 11509 template <class Protocol_> 11510 uint32_t write(Protocol_* prot_) const; 11511 11512 private: 11513 template <class Protocol_> 11514 void readNoXfer(Protocol_* iprot); 11515 11516 friend class ::apache::thrift::Cpp2Ops<struct_with_indirections>; 11517 friend void swap(struct_with_indirections& a, struct_with_indirections& b); 11518 }; 11519 11520 template <class Protocol_> 11521 uint32_t struct_with_indirections::read(Protocol_* iprot) { 11522 auto _xferStart = iprot->getCursorPosition(); 11523 readNoXfer(iprot); 11524 return iprot->getCursorPosition() - _xferStart; 11525 } 11526 11527 }} // test_cpp2::cpp_reflection 11528 11529 namespace apache { namespace thrift { 11530 11531 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::union1::Type>; 11532 11533 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::union1::Type> { 11534 using type = ::test_cpp2::cpp_reflection::union1::Type; 11535 11536 static constexpr std::size_t const size = 4; 11537 static folly::Range<type const*> const values; 11538 static folly::Range<folly::StringPiece const*> const names; 11539 11540 static char const* findName(type value); 11541 static bool findValue(char const* name, type* out); 11542 11543 }; 11544 11545 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::union2::Type>; 11546 11547 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::union2::Type> { 11548 using type = ::test_cpp2::cpp_reflection::union2::Type; 11549 11550 static constexpr std::size_t const size = 4; 11551 static folly::Range<type const*> const values; 11552 static folly::Range<folly::StringPiece const*> const names; 11553 11554 static char const* findName(type value); 11555 static bool findValue(char const* name, type* out); 11556 11557 }; 11558 11559 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::union3::Type>; 11560 11561 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::union3::Type> { 11562 using type = ::test_cpp2::cpp_reflection::union3::Type; 11563 11564 static constexpr std::size_t const size = 4; 11565 static folly::Range<type const*> const values; 11566 static folly::Range<folly::StringPiece const*> const names; 11567 11568 static char const* findName(type value); 11569 static bool findValue(char const* name, type* out); 11570 11571 }; 11572 11573 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::unionA::Type>; 11574 11575 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::unionA::Type> { 11576 using type = ::test_cpp2::cpp_reflection::unionA::Type; 11577 11578 static constexpr std::size_t const size = 5; 11579 static folly::Range<type const*> const values; 11580 static folly::Range<folly::StringPiece const*> const names; 11581 11582 static char const* findName(type value); 11583 static bool findValue(char const* name, type* out); 11584 11585 }; 11586 11587 template <> struct TEnumDataStorage<::test_cpp2::cpp_reflection::union_with_special_names::Type>; 11588 11589 template <> struct TEnumTraits<::test_cpp2::cpp_reflection::union_with_special_names::Type> { 11590 using type = ::test_cpp2::cpp_reflection::union_with_special_names::Type; 11591 11592 static constexpr std::size_t const size = 28; 11593 static folly::Range<type const*> const values; 11594 static folly::Range<folly::StringPiece const*> const names; 11595 11596 static char const* findName(type value); 11597 static bool findValue(char const* name, type* out); 11598 11599 }; 11600 }} // apache::thrift 11601