28#include <nlohmann/json_fwd.hpp>
30#include "iceberg/iceberg_data_export.h"
32#include "iceberg/result.h"
34namespace iceberg::puffin {
37ICEBERG_DATA_EXPORT nlohmann::json ToJson(
const BlobMetadata& blob_metadata);
40ICEBERG_DATA_EXPORT Result<BlobMetadata> BlobMetadataFromJson(
const nlohmann::json& json);
43ICEBERG_DATA_EXPORT nlohmann::json ToJson(
const FileMetadata& file_metadata);
46ICEBERG_DATA_EXPORT Result<FileMetadata> FileMetadataFromJson(
const nlohmann::json& json);
49ICEBERG_DATA_EXPORT std::string ToJsonString(
const FileMetadata& file_metadata,
53ICEBERG_DATA_EXPORT Result<FileMetadata> FileMetadataFromJsonString(
54 std::string_view json_string);