2323
2424#include < avro/Node.hh>
2525
26+ #include " iceberg/iceberg_bundle_export.h"
2627#include " iceberg/result.h"
2728#include " iceberg/schema_util.h"
2829#include " iceberg/type.h"
@@ -35,7 +36,7 @@ class ValidSchema;
3536namespace iceberg ::avro {
3637
3738// / \brief A visitor that converts an Iceberg type to an Avro node.
38- class ToAvroNodeVisitor {
39+ class ICEBERG_BUNDLE_EXPORT ToAvroNodeVisitor {
3940 public:
4041 Status Visit (const BooleanType& type, ::avro::NodePtr* node);
4142 Status Visit (const IntType& type, ::avro::NodePtr* node);
@@ -62,7 +63,7 @@ class ToAvroNodeVisitor {
6263};
6364
6465// / \brief A visitor that checks the presence of field IDs in an Avro schema.
65- class HasIdVisitor {
66+ class ICEBERG_BUNDLE_EXPORT HasIdVisitor {
6667 public:
6768 HasIdVisitor () = default ;
6869
@@ -132,7 +133,8 @@ class HasIdVisitor {
132133// / \param avro_node The Avro node to read data from.
133134// / \param prune_source Whether the source schema can be pruned.
134135// / \return The schema projection result.
135- Result<SchemaProjection> Project (const Schema& expected_schema,
136- const ::avro::NodePtr& avro_node, bool prune_source);
136+ ICEBERG_BUNDLE_EXPORT Result<SchemaProjection> Project (const Schema& expected_schema,
137+ const ::avro::NodePtr& avro_node,
138+ bool prune_source);
137139
138140} // namespace iceberg::avro
0 commit comments