'How to re-export functions from a third-party module

I have a module foo.zig which is useful but I want to augment it with more functions, without modifying it, so I created foo-wrapper.zig that has one or two more functions, and foo.zig has dozens of functions.

How do I re-export (with pub or something) all functions from foo.zig to all consumers of foo-wrapper.zig?

zig


Solution 1:[1]

just declare the function name in foo-wrapper.zig and add the pub keyword.


foo.zig

pub fn hello() void {
 std.debug.print("Hello", .{});
}

foo-wrapper.zig

const foo = @import("foo.zig");
pub const hello = foo.hello;
// or do
pub usingnamespace @import("foo.zig");

pub fn helloWorld() void {
 hello();
 std.debug.print(" World", .{});
}

main.zig

const foo_wrapper = @import("foo-wrapper.zig");

pub fn main() void {
  foo_wrapper.helloWorld();
  foo_wrapper.hello();
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1