ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
get_countries_response Struct Referencefinal

Response containing countries with pagination metadata. More...

#include <country_protocol.hpp>

Collaboration diagram for get_countries_response:
Collaboration graph

Public Member Functions

std::vector< std::byte > serialize () const
 Serialize response to bytes.
 

Static Public Member Functions

static std::expected< get_countries_response, ores::utility::serialization::error_code > deserialize (std::span< const std::byte > data)
 Deserialize response from bytes.
 

Public Attributes

std::vector< domain::countrycountries
 
std::uint32_t total_available_count = 0
 Total number of countries available (not just in this page)
 

Detailed Description

Response containing countries with pagination metadata.

Member Function Documentation

◆ serialize()

std::vector< std::byte > serialize ( ) const

Serialize response to bytes.

Format:

  • 4 bytes: total_available_count (uint32_t)
  • 4 bytes: count (number of countries in this response)
  • For each country:
    • 4 bytes: version (int)
    • 2 bytes: alpha2_code length
    • N bytes: alpha2_code (UTF-8)
    • 2 bytes: alpha3_code length
    • N bytes: alpha3_code (UTF-8)
    • 2 bytes: numeric_code length
    • N bytes: numeric_code (UTF-8)
    • 2 bytes: name length
    • N bytes: name (UTF-8)
    • 2 bytes: official_name length
    • N bytes: official_name (UTF-8)
    • 1 byte: has_image_id (0 or 1)
    • 16 bytes: image_id (UUID, only if has_image_id)
    • 2 bytes: recorded_by length
    • N bytes: recorded_by (UTF-8)
    • 2 bytes: recorded_at length
    • N bytes: recorded_at (UTF-8, ISO 8601 format)