#ifndef serde_benchmark_ffi_h
#define serde_benchmark_ffi_h

/* Generated with cbindgen:0.28.0 */

/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */

#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>

namespace serde_benchmark {

struct CitmCatalog;

struct TwitterData;

extern "C" {

TwitterData *twitter_from_str(const char *raw_input, size_t raw_input_length);

const char *str_from_twitter(TwitterData *raw);

void free_twitter(TwitterData *raw);

void free_string(const char *ptr);

/// Creates a CitmCatalog from a JSON string (UTF-8 encoded).
CitmCatalog *citm_from_str(const char *raw_input, uintptr_t raw_input_length);

/// Serializes a CitmCatalog into a JSON string (UTF-8).
char *str_from_citm(CitmCatalog *raw_catalog);

/// Frees the CitmCatalog pointer.
void free_citm(CitmCatalog *raw_catalog);

void free_str(char *ptr);

}  // extern "C"

}  // namespace serde_benchmark

#endif  // serde_benchmark_ffi_h
