22#include <nlohmann/json_fwd.hpp>
25#include "iceberg/iceberg_export.h"
26#include "iceberg/result.h"
38ICEBERG_EXPORT Result<Expression::Operation> OperationTypeFromJson(
39 const nlohmann::json& json);
53ICEBERG_EXPORT Result<std::shared_ptr<Expression>> ExpressionFromJson(
54 const nlohmann::json& json,
const Schema* schema =
nullptr);
60ICEBERG_EXPORT Result<nlohmann::json> ToJson(
const Expression& expr);
66ICEBERG_EXPORT Result<std::unique_ptr<NamedReference>> NamedReferenceFromJson(
67 const nlohmann::json& json);
73ICEBERG_EXPORT nlohmann::json ToJson(
const NamedReference& ref);
79ICEBERG_EXPORT nlohmann::json ToJson(
const UnboundTransform& transform);
85ICEBERG_EXPORT Result<std::unique_ptr<UnboundTransform>> UnboundTransformFromJson(
86 const nlohmann::json& json);
92ICEBERG_EXPORT Result<nlohmann::json> ToJson(
const Literal& literal);
98ICEBERG_EXPORT Result<Literal> LiteralFromJson(
const nlohmann::json& json);
105ICEBERG_EXPORT Result<Literal> LiteralFromJson(
const nlohmann::json& json,
112ICEBERG_EXPORT Result<nlohmann::json> ToJson(
const UnboundPredicate& pred);
115ICEBERG_EXPORT nlohmann::json ToJson(
const BoundReference& ref);
118ICEBERG_EXPORT nlohmann::json ToJson(
const BoundTransform& transform);
121ICEBERG_EXPORT Result<nlohmann::json> ToJson(
const BoundPredicate& pred);
128ICEBERG_EXPORT Result<std::unique_ptr<UnboundPredicate>> UnboundPredicateFromJson(
129 const nlohmann::json& json,
const Schema* schema =
nullptr);
135ICEBERG_EXPORT Result<nlohmann::json> ToJson(
const Term& term);
Operation
Operation types for expressions.
Definition expression.h:40