#include <stddef.h>
#include <stdint.h>
typedef struct PdStr {
size_t len;
void *data;
} RustString;
typedef struct PdStatement {
int32_t version;
uint64_t len;
void *data;
} PdStatement;
typedef struct PdParameters {
uint64_t num_params;
void *params;
uint64_t num_format_codes;
void *format_codes;
} PdParameters;
typedef struct PdRouterContext {
uint64_t shards;
uint8_t has_replicas;
uint8_t has_primary;
uint8_t in_transaction;
uint8_t write_override;
PdStatement query;
PdParameters params;
} PdRouterContext;
typedef struct PdRoute {
int64_t shard;
uint8_t read_write;
} PdRoute;