/*
 *  Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 *  This source code is licensed under the MIT license found in the LICENSE
 *  file in the root directory of this source tree.
 *
 */

/*
 *  THIS FILE IS AUTOGENERATED. DO NOT MODIFY IT; ALL CHANGES WILL BE LOST IN
 *  VAIN.
 *
 *  @generated
 */

namespace benchmark {
namespace thrift {

template <class Writer>
void CarbonTestDataSmall::serialize(Writer&& writer) const {
  writer.writeStructBegin();
  writer.writeField(1 /* field id */, intField1_ref());
  writer.writeField(2 /* field id */, longField1_ref());
  writer.writeField(3 /* field id */, shortString1_ref());
  writer.writeField(4 /* field id */, intList1_ref());
  writer.writeField(5 /* field id */, stringMap1_ref());
  writer.writeField(6 /* field id */, boolField1_ref());
  writer.writeField(7 /* field id */, doubleField1_ref());
  writer.writeFieldStop();
  writer.writeStructEnd();
}

template <class V>
void CarbonTestDataSmall::visitFields(V&& v) {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
}

template <class V>
void CarbonTestDataSmall::visitFields(V&& v) const {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
}

template <class Writer>
void CarbonTestDataMedium::serialize(Writer&& writer) const {
  writer.writeStructBegin();
  writer.writeField(1 /* field id */, intField1_ref());
  writer.writeField(2 /* field id */, longField1_ref());
  writer.writeField(3 /* field id */, shortString1_ref());
  writer.writeField(4 /* field id */, intList1_ref());
  writer.writeField(5 /* field id */, stringMap1_ref());
  writer.writeField(6 /* field id */, boolField1_ref());
  writer.writeField(7 /* field id */, doubleField1_ref());
  writer.writeField(8 /* field id */, intField2_ref());
  writer.writeField(9 /* field id */, longField2_ref());
  writer.writeField(10 /* field id */, shortString2_ref());
  writer.writeField(11 /* field id */, intList2_ref());
  writer.writeField(12 /* field id */, stringMap2_ref());
  writer.writeField(13 /* field id */, boolField2_ref());
  writer.writeField(14 /* field id */, doubleField2_ref());
  writer.writeField(15 /* field id */, intField3_ref());
  writer.writeField(16 /* field id */, longField3_ref());
  writer.writeField(17 /* field id */, shortString3_ref());
  writer.writeField(18 /* field id */, intList3_ref());
  writer.writeField(19 /* field id */, stringMap3_ref());
  writer.writeField(20 /* field id */, boolField3_ref());
  writer.writeField(21 /* field id */, doubleField3_ref());
  writer.writeFieldStop();
  writer.writeStructEnd();
}

template <class V>
void CarbonTestDataMedium::visitFields(V&& v) {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
  if (!v.visitField(8, "intField2", *this->intField2_ref())) {
    return;
  }
  if (!v.visitField(9, "longField2", *this->longField2_ref())) {
    return;
  }
  if (!v.visitField(10, "shortString2", *this->shortString2_ref())) {
    return;
  }
  if (!v.visitField(11, "intList2", *this->intList2_ref())) {
    return;
  }
  if (!v.visitField(12, "stringMap2", *this->stringMap2_ref())) {
    return;
  }
  if (!v.visitField(13, "boolField2", *this->boolField2_ref())) {
    return;
  }
  if (!v.visitField(14, "doubleField2", *this->doubleField2_ref())) {
    return;
  }
  if (!v.visitField(15, "intField3", *this->intField3_ref())) {
    return;
  }
  if (!v.visitField(16, "longField3", *this->longField3_ref())) {
    return;
  }
  if (!v.visitField(17, "shortString3", *this->shortString3_ref())) {
    return;
  }
  if (!v.visitField(18, "intList3", *this->intList3_ref())) {
    return;
  }
  if (!v.visitField(19, "stringMap3", *this->stringMap3_ref())) {
    return;
  }
  if (!v.visitField(20, "boolField3", *this->boolField3_ref())) {
    return;
  }
  if (!v.visitField(21, "doubleField3", *this->doubleField3_ref())) {
    return;
  }
}

template <class V>
void CarbonTestDataMedium::visitFields(V&& v) const {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
  if (!v.visitField(8, "intField2", *this->intField2_ref())) {
    return;
  }
  if (!v.visitField(9, "longField2", *this->longField2_ref())) {
    return;
  }
  if (!v.visitField(10, "shortString2", *this->shortString2_ref())) {
    return;
  }
  if (!v.visitField(11, "intList2", *this->intList2_ref())) {
    return;
  }
  if (!v.visitField(12, "stringMap2", *this->stringMap2_ref())) {
    return;
  }
  if (!v.visitField(13, "boolField2", *this->boolField2_ref())) {
    return;
  }
  if (!v.visitField(14, "doubleField2", *this->doubleField2_ref())) {
    return;
  }
  if (!v.visitField(15, "intField3", *this->intField3_ref())) {
    return;
  }
  if (!v.visitField(16, "longField3", *this->longField3_ref())) {
    return;
  }
  if (!v.visitField(17, "shortString3", *this->shortString3_ref())) {
    return;
  }
  if (!v.visitField(18, "intList3", *this->intList3_ref())) {
    return;
  }
  if (!v.visitField(19, "stringMap3", *this->stringMap3_ref())) {
    return;
  }
  if (!v.visitField(20, "boolField3", *this->boolField3_ref())) {
    return;
  }
  if (!v.visitField(21, "doubleField3", *this->doubleField3_ref())) {
    return;
  }
}

template <class Writer>
void CarbonTestDataLarge::serialize(Writer&& writer) const {
  writer.writeStructBegin();
  writer.writeField(1 /* field id */, intField1_ref());
  writer.writeField(2 /* field id */, longField1_ref());
  writer.writeField(3 /* field id */, shortString1_ref());
  writer.writeField(4 /* field id */, intList1_ref());
  writer.writeField(5 /* field id */, stringMap1_ref());
  writer.writeField(6 /* field id */, boolField1_ref());
  writer.writeField(7 /* field id */, doubleField1_ref());
  writer.writeField(8 /* field id */, intField2_ref());
  writer.writeField(9 /* field id */, longField2_ref());
  writer.writeField(10 /* field id */, shortString2_ref());
  writer.writeField(11 /* field id */, intList2_ref());
  writer.writeField(12 /* field id */, stringMap2_ref());
  writer.writeField(13 /* field id */, boolField2_ref());
  writer.writeField(14 /* field id */, doubleField2_ref());
  writer.writeField(15 /* field id */, intField3_ref());
  writer.writeField(16 /* field id */, longField3_ref());
  writer.writeField(17 /* field id */, shortString3_ref());
  writer.writeField(18 /* field id */, intList3_ref());
  writer.writeField(19 /* field id */, stringMap3_ref());
  writer.writeField(20 /* field id */, boolField3_ref());
  writer.writeField(21 /* field id */, doubleField3_ref());
  writer.writeField(22 /* field id */, intField4_ref());
  writer.writeField(23 /* field id */, longField4_ref());
  writer.writeField(24 /* field id */, shortString4_ref());
  writer.writeField(25 /* field id */, intList4_ref());
  writer.writeField(26 /* field id */, stringMap4_ref());
  writer.writeField(27 /* field id */, boolField4_ref());
  writer.writeField(28 /* field id */, doubleField4_ref());
  writer.writeField(29 /* field id */, intField5_ref());
  writer.writeField(30 /* field id */, longField5_ref());
  writer.writeField(31 /* field id */, shortString5_ref());
  writer.writeField(32 /* field id */, intList5_ref());
  writer.writeField(33 /* field id */, stringMap5_ref());
  writer.writeField(34 /* field id */, boolField5_ref());
  writer.writeField(35 /* field id */, doubleField5_ref());
  writer.writeField(36 /* field id */, intField6_ref());
  writer.writeField(37 /* field id */, longField6_ref());
  writer.writeField(38 /* field id */, shortString6_ref());
  writer.writeField(39 /* field id */, intList6_ref());
  writer.writeField(40 /* field id */, stringMap6_ref());
  writer.writeField(41 /* field id */, boolField6_ref());
  writer.writeField(42 /* field id */, doubleField6_ref());
  writer.writeField(43 /* field id */, intField7_ref());
  writer.writeField(44 /* field id */, longField7_ref());
  writer.writeField(45 /* field id */, shortString7_ref());
  writer.writeField(46 /* field id */, intList7_ref());
  writer.writeField(47 /* field id */, stringMap7_ref());
  writer.writeField(48 /* field id */, boolField7_ref());
  writer.writeField(49 /* field id */, doubleField7_ref());
  writer.writeField(50 /* field id */, intField8_ref());
  writer.writeField(51 /* field id */, longField8_ref());
  writer.writeField(52 /* field id */, shortString8_ref());
  writer.writeField(53 /* field id */, intList8_ref());
  writer.writeField(54 /* field id */, stringMap8_ref());
  writer.writeField(55 /* field id */, boolField8_ref());
  writer.writeField(56 /* field id */, doubleField8_ref());
  writer.writeField(57 /* field id */, intField9_ref());
  writer.writeField(58 /* field id */, longField9_ref());
  writer.writeField(59 /* field id */, shortString9_ref());
  writer.writeField(60 /* field id */, intList9_ref());
  writer.writeField(61 /* field id */, stringMap9_ref());
  writer.writeField(62 /* field id */, boolField9_ref());
  writer.writeField(63 /* field id */, doubleField9_ref());
  writer.writeFieldStop();
  writer.writeStructEnd();
}

template <class V>
void CarbonTestDataLarge::visitFields(V&& v) {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
  if (!v.visitField(8, "intField2", *this->intField2_ref())) {
    return;
  }
  if (!v.visitField(9, "longField2", *this->longField2_ref())) {
    return;
  }
  if (!v.visitField(10, "shortString2", *this->shortString2_ref())) {
    return;
  }
  if (!v.visitField(11, "intList2", *this->intList2_ref())) {
    return;
  }
  if (!v.visitField(12, "stringMap2", *this->stringMap2_ref())) {
    return;
  }
  if (!v.visitField(13, "boolField2", *this->boolField2_ref())) {
    return;
  }
  if (!v.visitField(14, "doubleField2", *this->doubleField2_ref())) {
    return;
  }
  if (!v.visitField(15, "intField3", *this->intField3_ref())) {
    return;
  }
  if (!v.visitField(16, "longField3", *this->longField3_ref())) {
    return;
  }
  if (!v.visitField(17, "shortString3", *this->shortString3_ref())) {
    return;
  }
  if (!v.visitField(18, "intList3", *this->intList3_ref())) {
    return;
  }
  if (!v.visitField(19, "stringMap3", *this->stringMap3_ref())) {
    return;
  }
  if (!v.visitField(20, "boolField3", *this->boolField3_ref())) {
    return;
  }
  if (!v.visitField(21, "doubleField3", *this->doubleField3_ref())) {
    return;
  }
  if (!v.visitField(22, "intField4", *this->intField4_ref())) {
    return;
  }
  if (!v.visitField(23, "longField4", *this->longField4_ref())) {
    return;
  }
  if (!v.visitField(24, "shortString4", *this->shortString4_ref())) {
    return;
  }
  if (!v.visitField(25, "intList4", *this->intList4_ref())) {
    return;
  }
  if (!v.visitField(26, "stringMap4", *this->stringMap4_ref())) {
    return;
  }
  if (!v.visitField(27, "boolField4", *this->boolField4_ref())) {
    return;
  }
  if (!v.visitField(28, "doubleField4", *this->doubleField4_ref())) {
    return;
  }
  if (!v.visitField(29, "intField5", *this->intField5_ref())) {
    return;
  }
  if (!v.visitField(30, "longField5", *this->longField5_ref())) {
    return;
  }
  if (!v.visitField(31, "shortString5", *this->shortString5_ref())) {
    return;
  }
  if (!v.visitField(32, "intList5", *this->intList5_ref())) {
    return;
  }
  if (!v.visitField(33, "stringMap5", *this->stringMap5_ref())) {
    return;
  }
  if (!v.visitField(34, "boolField5", *this->boolField5_ref())) {
    return;
  }
  if (!v.visitField(35, "doubleField5", *this->doubleField5_ref())) {
    return;
  }
  if (!v.visitField(36, "intField6", *this->intField6_ref())) {
    return;
  }
  if (!v.visitField(37, "longField6", *this->longField6_ref())) {
    return;
  }
  if (!v.visitField(38, "shortString6", *this->shortString6_ref())) {
    return;
  }
  if (!v.visitField(39, "intList6", *this->intList6_ref())) {
    return;
  }
  if (!v.visitField(40, "stringMap6", *this->stringMap6_ref())) {
    return;
  }
  if (!v.visitField(41, "boolField6", *this->boolField6_ref())) {
    return;
  }
  if (!v.visitField(42, "doubleField6", *this->doubleField6_ref())) {
    return;
  }
  if (!v.visitField(43, "intField7", *this->intField7_ref())) {
    return;
  }
  if (!v.visitField(44, "longField7", *this->longField7_ref())) {
    return;
  }
  if (!v.visitField(45, "shortString7", *this->shortString7_ref())) {
    return;
  }
  if (!v.visitField(46, "intList7", *this->intList7_ref())) {
    return;
  }
  if (!v.visitField(47, "stringMap7", *this->stringMap7_ref())) {
    return;
  }
  if (!v.visitField(48, "boolField7", *this->boolField7_ref())) {
    return;
  }
  if (!v.visitField(49, "doubleField7", *this->doubleField7_ref())) {
    return;
  }
  if (!v.visitField(50, "intField8", *this->intField8_ref())) {
    return;
  }
  if (!v.visitField(51, "longField8", *this->longField8_ref())) {
    return;
  }
  if (!v.visitField(52, "shortString8", *this->shortString8_ref())) {
    return;
  }
  if (!v.visitField(53, "intList8", *this->intList8_ref())) {
    return;
  }
  if (!v.visitField(54, "stringMap8", *this->stringMap8_ref())) {
    return;
  }
  if (!v.visitField(55, "boolField8", *this->boolField8_ref())) {
    return;
  }
  if (!v.visitField(56, "doubleField8", *this->doubleField8_ref())) {
    return;
  }
  if (!v.visitField(57, "intField9", *this->intField9_ref())) {
    return;
  }
  if (!v.visitField(58, "longField9", *this->longField9_ref())) {
    return;
  }
  if (!v.visitField(59, "shortString9", *this->shortString9_ref())) {
    return;
  }
  if (!v.visitField(60, "intList9", *this->intList9_ref())) {
    return;
  }
  if (!v.visitField(61, "stringMap9", *this->stringMap9_ref())) {
    return;
  }
  if (!v.visitField(62, "boolField9", *this->boolField9_ref())) {
    return;
  }
  if (!v.visitField(63, "doubleField9", *this->doubleField9_ref())) {
    return;
  }
}

template <class V>
void CarbonTestDataLarge::visitFields(V&& v) const {
  if (!v.visitField(1, "intField1", *this->intField1_ref())) {
    return;
  }
  if (!v.visitField(2, "longField1", *this->longField1_ref())) {
    return;
  }
  if (!v.visitField(3, "shortString1", *this->shortString1_ref())) {
    return;
  }
  if (!v.visitField(4, "intList1", *this->intList1_ref())) {
    return;
  }
  if (!v.visitField(5, "stringMap1", *this->stringMap1_ref())) {
    return;
  }
  if (!v.visitField(6, "boolField1", *this->boolField1_ref())) {
    return;
  }
  if (!v.visitField(7, "doubleField1", *this->doubleField1_ref())) {
    return;
  }
  if (!v.visitField(8, "intField2", *this->intField2_ref())) {
    return;
  }
  if (!v.visitField(9, "longField2", *this->longField2_ref())) {
    return;
  }
  if (!v.visitField(10, "shortString2", *this->shortString2_ref())) {
    return;
  }
  if (!v.visitField(11, "intList2", *this->intList2_ref())) {
    return;
  }
  if (!v.visitField(12, "stringMap2", *this->stringMap2_ref())) {
    return;
  }
  if (!v.visitField(13, "boolField2", *this->boolField2_ref())) {
    return;
  }
  if (!v.visitField(14, "doubleField2", *this->doubleField2_ref())) {
    return;
  }
  if (!v.visitField(15, "intField3", *this->intField3_ref())) {
    return;
  }
  if (!v.visitField(16, "longField3", *this->longField3_ref())) {
    return;
  }
  if (!v.visitField(17, "shortString3", *this->shortString3_ref())) {
    return;
  }
  if (!v.visitField(18, "intList3", *this->intList3_ref())) {
    return;
  }
  if (!v.visitField(19, "stringMap3", *this->stringMap3_ref())) {
    return;
  }
  if (!v.visitField(20, "boolField3", *this->boolField3_ref())) {
    return;
  }
  if (!v.visitField(21, "doubleField3", *this->doubleField3_ref())) {
    return;
  }
  if (!v.visitField(22, "intField4", *this->intField4_ref())) {
    return;
  }
  if (!v.visitField(23, "longField4", *this->longField4_ref())) {
    return;
  }
  if (!v.visitField(24, "shortString4", *this->shortString4_ref())) {
    return;
  }
  if (!v.visitField(25, "intList4", *this->intList4_ref())) {
    return;
  }
  if (!v.visitField(26, "stringMap4", *this->stringMap4_ref())) {
    return;
  }
  if (!v.visitField(27, "boolField4", *this->boolField4_ref())) {
    return;
  }
  if (!v.visitField(28, "doubleField4", *this->doubleField4_ref())) {
    return;
  }
  if (!v.visitField(29, "intField5", *this->intField5_ref())) {
    return;
  }
  if (!v.visitField(30, "longField5", *this->longField5_ref())) {
    return;
  }
  if (!v.visitField(31, "shortString5", *this->shortString5_ref())) {
    return;
  }
  if (!v.visitField(32, "intList5", *this->intList5_ref())) {
    return;
  }
  if (!v.visitField(33, "stringMap5", *this->stringMap5_ref())) {
    return;
  }
  if (!v.visitField(34, "boolField5", *this->boolField5_ref())) {
    return;
  }
  if (!v.visitField(35, "doubleField5", *this->doubleField5_ref())) {
    return;
  }
  if (!v.visitField(36, "intField6", *this->intField6_ref())) {
    return;
  }
  if (!v.visitField(37, "longField6", *this->longField6_ref())) {
    return;
  }
  if (!v.visitField(38, "shortString6", *this->shortString6_ref())) {
    return;
  }
  if (!v.visitField(39, "intList6", *this->intList6_ref())) {
    return;
  }
  if (!v.visitField(40, "stringMap6", *this->stringMap6_ref())) {
    return;
  }
  if (!v.visitField(41, "boolField6", *this->boolField6_ref())) {
    return;
  }
  if (!v.visitField(42, "doubleField6", *this->doubleField6_ref())) {
    return;
  }
  if (!v.visitField(43, "intField7", *this->intField7_ref())) {
    return;
  }
  if (!v.visitField(44, "longField7", *this->longField7_ref())) {
    return;
  }
  if (!v.visitField(45, "shortString7", *this->shortString7_ref())) {
    return;
  }
  if (!v.visitField(46, "intList7", *this->intList7_ref())) {
    return;
  }
  if (!v.visitField(47, "stringMap7", *this->stringMap7_ref())) {
    return;
  }
  if (!v.visitField(48, "boolField7", *this->boolField7_ref())) {
    return;
  }
  if (!v.visitField(49, "doubleField7", *this->doubleField7_ref())) {
    return;
  }
  if (!v.visitField(50, "intField8", *this->intField8_ref())) {
    return;
  }
  if (!v.visitField(51, "longField8", *this->longField8_ref())) {
    return;
  }
  if (!v.visitField(52, "shortString8", *this->shortString8_ref())) {
    return;
  }
  if (!v.visitField(53, "intList8", *this->intList8_ref())) {
    return;
  }
  if (!v.visitField(54, "stringMap8", *this->stringMap8_ref())) {
    return;
  }
  if (!v.visitField(55, "boolField8", *this->boolField8_ref())) {
    return;
  }
  if (!v.visitField(56, "doubleField8", *this->doubleField8_ref())) {
    return;
  }
  if (!v.visitField(57, "intField9", *this->intField9_ref())) {
    return;
  }
  if (!v.visitField(58, "longField9", *this->longField9_ref())) {
    return;
  }
  if (!v.visitField(59, "shortString9", *this->shortString9_ref())) {
    return;
  }
  if (!v.visitField(60, "intList9", *this->intList9_ref())) {
    return;
  }
  if (!v.visitField(61, "stringMap9", *this->stringMap9_ref())) {
    return;
  }
  if (!v.visitField(62, "boolField9", *this->boolField9_ref())) {
    return;
  }
  if (!v.visitField(63, "doubleField9", *this->doubleField9_ref())) {
    return;
  }
}
} // namespace thrift
} // namespace benchmark

namespace apache {
namespace thrift {
template <>
class Cpp2Ops<benchmark::CarbonTestDataSmall> {
 public:
  typedef benchmark::CarbonTestDataSmall Type;
  static constexpr protocol::TType thriftType() {
    return protocol::T_STRUCT;
  }
  template <class Protocol>
  static uint32_t write(Protocol* prot, const Type* value) {
    return value->write(prot);
  }
  template <class Protocol>
  static void read(Protocol* prot, Type* value) {
    value->read(prot);
  }
  template <class Protocol>
  static uint32_t serializedSize(Protocol* prot, const Type* value) {
    return value->serializedSize(prot);
  }
  template <class Protocol>
  static uint32_t serializedSizeZC(Protocol* prot, const Type* value) {
    return value->serializedSizeZC(prot);
  }
};

template <>
class Cpp2Ops<benchmark::CarbonTestDataMedium> {
 public:
  typedef benchmark::CarbonTestDataMedium Type;
  static constexpr protocol::TType thriftType() {
    return protocol::T_STRUCT;
  }
  template <class Protocol>
  static uint32_t write(Protocol* prot, const Type* value) {
    return value->write(prot);
  }
  template <class Protocol>
  static void read(Protocol* prot, Type* value) {
    value->read(prot);
  }
  template <class Protocol>
  static uint32_t serializedSize(Protocol* prot, const Type* value) {
    return value->serializedSize(prot);
  }
  template <class Protocol>
  static uint32_t serializedSizeZC(Protocol* prot, const Type* value) {
    return value->serializedSizeZC(prot);
  }
};

template <>
class Cpp2Ops<benchmark::CarbonTestDataLarge> {
 public:
  typedef benchmark::CarbonTestDataLarge Type;
  static constexpr protocol::TType thriftType() {
    return protocol::T_STRUCT;
  }
  template <class Protocol>
  static uint32_t write(Protocol* prot, const Type* value) {
    return value->write(prot);
  }
  template <class Protocol>
  static void read(Protocol* prot, Type* value) {
    value->read(prot);
  }
  template <class Protocol>
  static uint32_t serializedSize(Protocol* prot, const Type* value) {
    return value->serializedSize(prot);
  }
  template <class Protocol>
  static uint32_t serializedSizeZC(Protocol* prot, const Type* value) {
    return value->serializedSizeZC(prot);
  }
};
} // namespace thrift
} // namespace apache
