24#include <unordered_map>
25#include <unordered_set>
28#include "iceberg/catalog/rest/iceberg_rest_export.h"
30#include "iceberg/result.h"
33namespace iceberg::rest {
39ICEBERG_REST_EXPORT std::string_view TrimTrailingSlash(std::string_view str);
49ICEBERG_REST_EXPORT Result<std::string> EncodeString(std::string_view str_to_encode);
57ICEBERG_REST_EXPORT Result<std::string> DecodeString(std::string_view str_to_decode);
66ICEBERG_REST_EXPORT Result<std::string> EncodeNamespace(
67 const Namespace& ns_to_encode, std::string_view separator =
"%1F");
76ICEBERG_REST_EXPORT Result<Namespace> DecodeNamespace(std::string_view str_to_decode,
77 std::string_view separator =
"%1F");
87ICEBERG_REST_EXPORT std::unordered_map<std::string, std::string> MergeConfigs(
88 const std::unordered_map<std::string, std::string>& server_defaults,
89 const std::unordered_map<std::string, std::string>& client_configs,
90 const std::unordered_map<std::string, std::string>& server_overrides);
99ICEBERG_REST_EXPORT std::string GetStandardReasonPhrase(int32_t status_code);