#pragma once

#ifdef __cplusplus
extern "C"
{
#endif

struct schedule_options
{
    uint64_t merge_stat_interval;  // range: [1, 60000] (ms)
    uint64_t output_stat_interval; // range: [1, 60000] (ms)
};

struct snowflake_options
{
    uint8_t snowflake_base;
    uint8_t snowflake_offset;
};

struct stellar_config
{
    struct snowflake_options snowflake_opts;
    struct schedule_options sched_opts;
};

int stellar_config_load(struct stellar_config *config, const char *file);
void stellar_config_print(const struct stellar_config *config);

#ifdef __cplusplus
}
#endif
