| 21 | using qualifying_results_type = std::tuple<std::size_t,std::string,std::string,std::string,std::chrono::milliseconds>; |
| 22 | |
| 23 | void tuple_example() |
| 24 | { |
| 25 | std::vector<qualifying_results_type> results = { |
| 26 | {1,"Lewis Hamilton","Mercedes","1'24.303",std::chrono::milliseconds(0)}, |
| 27 | {2,"Valtteri Bottas","Mercedes","1'24.616",std::chrono::milliseconds(313)}, |
| 28 | {3,"Max Verstappen","Red Bull","1'25.325",std::chrono::milliseconds(1022)} |
| 29 | }; |
| 30 | |
| 31 | std::string json_data; |
| 32 | encode_json_pretty(results, json_data); |
| 33 | std::cout << json_data << "\n\n"; |
| 34 | auto results1 = decode_json<std::vector<qualifying_results_type>>(json_data); |
| 35 | assert(results1 == results); |
| 36 | |
| 37 | auto csv_options = csv::csv_options{} |
| 38 | .column_names("Pos,Driver,Entrant,Time,Gap") |
| 39 | .mapping_kind(csv::csv_mapping_kind::n_rows) |
| 40 | .header_lines(1); |
| 41 | std::string csv_data; |
| 42 | csv::encode_csv(results, csv_data, csv_options); |
| 43 | std::cout << csv_data << "\n\n"; |
| 44 | auto results2 = csv::decode_csv<std::vector<qualifying_results_type>>(csv_data, csv_options); |
| 45 | assert(results2 == results); |
| 46 | |
| 47 | std::vector<uint8_t> bson_data; |
| 48 | bson::encode_bson(results, bson_data); |
| 49 | auto results3 = bson::decode_bson<std::vector<qualifying_results_type>>(bson_data); |
| 50 | assert(results3 == results); |
| 51 | |
| 52 | std::vector<uint8_t> cbor_data; |
| 53 | cbor::encode_cbor(results, cbor_data); |
| 54 | auto results4 = cbor::decode_cbor<std::vector<qualifying_results_type>>(cbor_data); |
| 55 | assert(results4 == results); |
| 56 | |
| 57 | std::vector<uint8_t> msgpack_data; |
| 58 | msgpack::encode_msgpack(results, msgpack_data); |
| 59 | auto results5 = msgpack::decode_msgpack<std::vector<qualifying_results_type>>(msgpack_data); |
| 60 | assert(results5 == results); |
| 61 | |
| 62 | std::vector<uint8_t> ubjson_data; |
| 63 | ubjson::encode_ubjson(results, ubjson_data); |
| 64 | auto results6 = ubjson::decode_ubjson<std::vector<qualifying_results_type>>(ubjson_data); |
| 65 | assert(results6 == results); |
| 66 | } |
| 67 | |
| 68 | int main() |
| 69 | { |
no test coverage detected