Skip to content

Commit 056443d

Browse files
authored
chore: use extism:host/env namespace (#14)
* chore: use extism:env namespace * cleanup: rename namespaced functions * fix: use extism:host/env
1 parent 66c2c82 commit 056443d

File tree

3 files changed

+49
-49
lines changed

3 files changed

+49
-49
lines changed

src/Memory.zig

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const std = @import("std");
2-
const c = @import("ffi.zig");
2+
const extism = @import("ffi.zig");
33

44
const Self = @This();
55

@@ -19,12 +19,12 @@ pub fn load(self: Self, buf: []u8) void {
1919
var i: usize = 0;
2020
while (i < len) {
2121
if (len - i < 8) {
22-
buf[i] = c.extism_load_u8(self.offset + @as(u64, i));
22+
buf[i] = extism.load_u8(self.offset + @as(u64, i));
2323
i += 1;
2424
continue;
2525
}
2626

27-
const x = c.extism_load_u64(self.offset + @as(u64, i));
27+
const x = extism.load_u64(self.offset + @as(u64, i));
2828
std.mem.writeIntLittle(u64, buf[i..][0..8], x);
2929
i += 8;
3030
}
@@ -35,31 +35,31 @@ pub fn store(self: Self, buf: []const u8) void {
3535
var i: usize = 0;
3636
while (i < len) {
3737
if (len - i < 8) {
38-
c.extism_store_u8(self.offset + @as(u64, i), buf[i]);
38+
extism.store_u8(self.offset + @as(u64, i), buf[i]);
3939
i += 1;
4040
continue;
4141
}
4242
const data = std.mem.readIntLittle(u64, buf[i..][0..8]);
43-
c.extism_store_u64(self.offset + @as(u64, i), data);
43+
extism.store_u64(self.offset + @as(u64, i), data);
4444
i += 8;
4545
}
4646
}
4747

4848
pub fn allocate(length: usize) Self {
4949
const c_len = @as(u64, length);
50-
const offset = c.extism_alloc(c_len);
50+
const offset = extism.alloc(c_len);
5151

5252
return .{ .offset = @as(u64, offset), .length = @as(u64, c_len) };
5353
}
5454

5555
pub fn allocateBytes(data: []const u8) Self {
5656
const c_len = @as(u64, data.len);
57-
const offset = c.extism_alloc(c_len);
57+
const offset = extism.alloc(c_len);
5858
const mem = init(offset, c_len);
5959
mem.store(data);
6060
return .{ .offset = offset, .length = c_len };
6161
}
6262

6363
pub fn free(self: Self) void {
64-
c.extism_free(self.offset);
64+
extism.free(self.offset);
6565
}

src/ffi.zig

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
pub const ExtismPointer = u64;
2-
pub extern fn extism_input_length() u64;
3-
pub extern fn extism_length(ExtismPointer) u64;
4-
pub extern fn extism_alloc(u64) ExtismPointer;
5-
pub extern fn extism_free(ExtismPointer) void;
6-
pub extern fn extism_input_load_u8(ExtismPointer) u8;
7-
pub extern fn extism_input_load_u64(ExtismPointer) u64;
8-
pub extern fn extism_output_set(ExtismPointer, u64) void;
9-
pub extern fn extism_error_set(ExtismPointer) void;
10-
pub extern fn extism_config_get(ExtismPointer) ExtismPointer;
11-
pub extern fn extism_var_get(ExtismPointer) ExtismPointer;
12-
pub extern fn extism_var_set(ExtismPointer, ExtismPointer) void;
13-
pub extern fn extism_store_u8(ExtismPointer, u8) void;
14-
pub extern fn extism_load_u8(ExtismPointer) u8;
15-
pub extern fn extism_store_u64(ExtismPointer, u64) void;
16-
pub extern fn extism_load_u64(ExtismPointer) u64;
17-
pub extern fn extism_http_request(ExtismPointer, ExtismPointer) ExtismPointer;
18-
pub extern fn extism_http_status_code() i32;
19-
pub extern fn extism_log_info(ExtismPointer) void;
20-
pub extern fn extism_log_debug(ExtismPointer) void;
21-
pub extern fn extism_log_warn(ExtismPointer) void;
22-
pub extern fn extism_log_error(ExtismPointer) void;
2+
pub extern "extism:host/env" fn input_length() u64;
3+
pub extern "extism:host/env" fn length(ExtismPointer) u64;
4+
pub extern "extism:host/env" fn alloc(u64) ExtismPointer;
5+
pub extern "extism:host/env" fn free(ExtismPointer) void;
6+
pub extern "extism:host/env" fn input_load_u8(ExtismPointer) u8;
7+
pub extern "extism:host/env" fn input_load_u64(ExtismPointer) u64;
8+
pub extern "extism:host/env" fn output_set(ExtismPointer, u64) void;
9+
pub extern "extism:host/env" fn error_set(ExtismPointer) void;
10+
pub extern "extism:host/env" fn config_get(ExtismPointer) ExtismPointer;
11+
pub extern "extism:host/env" fn var_get(ExtismPointer) ExtismPointer;
12+
pub extern "extism:host/env" fn var_set(ExtismPointer, ExtismPointer) void;
13+
pub extern "extism:host/env" fn store_u8(ExtismPointer, u8) void;
14+
pub extern "extism:host/env" fn load_u8(ExtismPointer) u8;
15+
pub extern "extism:host/env" fn store_u64(ExtismPointer, u64) void;
16+
pub extern "extism:host/env" fn load_u64(ExtismPointer) u64;
17+
pub extern "extism:host/env" fn http_request(ExtismPointer, ExtismPointer) ExtismPointer;
18+
pub extern "extism:host/env" fn http_status_code() i32;
19+
pub extern "extism:host/env" fn log_info(ExtismPointer) void;
20+
pub extern "extism:host/env" fn log_debug(ExtismPointer) void;
21+
pub extern "extism:host/env" fn log_warn(ExtismPointer) void;
22+
pub extern "extism:host/env" fn log_error(ExtismPointer) void;

src/main.zig

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const std = @import("std");
2-
const c = @import("ffi.zig");
2+
const extism = @import("ffi.zig");
33
const Memory = @import("Memory.zig");
44
pub const http = @import("http.zig");
55

@@ -16,18 +16,18 @@ pub const Plugin = struct {
1616

1717
// IMPORTANT: It's the caller's responsibility to free the returned slice
1818
pub fn getInput(self: Plugin) ![]u8 {
19-
const len = c.extism_input_length();
19+
const len = extism.input_length();
2020
var buf = try self.allocator.alloc(u8, @intCast(len));
2121
errdefer self.allocator.free(buf);
2222
var i: usize = 0;
2323
while (i < len) {
2424
if (len - i < 8) {
25-
buf[i] = c.extism_input_load_u8(@as(u64, i));
25+
buf[i] = extism.input_load_u8(@as(u64, i));
2626
i += 1;
2727
continue;
2828
}
2929

30-
const x = c.extism_input_load_u64(@as(u64, i));
30+
const x = extism.input_load_u64(@as(u64, i));
3131
std.mem.writeIntLittle(u64, buf[i..][0..8], x);
3232
i += 8;
3333
}
@@ -36,25 +36,25 @@ pub const Plugin = struct {
3636

3737
pub fn outputMemory(self: Plugin, mem: Memory) void {
3838
_ = self; // to make the interface consistent
39-
c.extism_output_set(mem.offset, mem.length);
39+
extism.output_set(mem.offset, mem.length);
4040
}
4141

4242
pub fn output(self: Plugin, data: []const u8) void {
4343
_ = self; // to make the interface consistent
4444
const c_len = @as(u64, data.len);
45-
const offset = c.extism_alloc(c_len);
45+
const offset = extism.alloc(c_len);
4646
const memory = Memory.init(offset, c_len);
4747
defer memory.free();
4848
memory.store(data);
49-
c.extism_output_set(offset, c_len);
49+
extism.output_set(offset, c_len);
5050
}
5151

5252
/// IMPORTANT: it's the caller's responsibility to free the returned string
5353
pub fn getConfig(self: Plugin, key: []const u8) !?[]u8 {
5454
const key_mem = Memory.allocateBytes(key);
5555
defer key_mem.free();
56-
const offset = c.extism_config_get(key_mem.offset);
57-
const c_len = c.extism_length(offset);
56+
const offset = extism.config_get(key_mem.offset);
57+
const c_len = extism.length(offset);
5858
if (offset == 0 or c_len == 0) {
5959
return null;
6060
}
@@ -69,10 +69,10 @@ pub const Plugin = struct {
6969
pub fn logMemory(self: Plugin, level: LogLevel, memory: Memory) void {
7070
_ = self; // to make the interface consistent
7171
switch (level) {
72-
.Info => c.extism_log_info(memory.offset),
73-
.Debug => c.extism_log_debug(memory.offset),
74-
.Warn => c.extism_log_warn(memory.offset),
75-
.Error => c.extism_log_error(memory.offset),
72+
.Info => extism.log_info(memory.offset),
73+
.Debug => extism.log_debug(memory.offset),
74+
.Warn => extism.log_warn(memory.offset),
75+
.Error => extism.log_error(memory.offset),
7676
}
7777
}
7878

@@ -86,8 +86,8 @@ pub const Plugin = struct {
8686
pub fn getVar(self: Plugin, key: []const u8) !?[]u8 {
8787
const key_mem = Memory.allocateBytes(key);
8888
defer key_mem.free();
89-
const offset = c.extism_var_get(key_mem.offset);
90-
const c_len = c.extism_length(offset);
89+
const offset = extism.var_get(key_mem.offset);
90+
const c_len = extism.length(offset);
9191
if (offset == 0 or c_len == 0) {
9292
return null;
9393
}
@@ -105,14 +105,14 @@ pub const Plugin = struct {
105105
defer key_mem.free();
106106
const val_mem = Memory.allocateBytes(value);
107107
defer val_mem.free();
108-
c.extism_var_set(key_mem.offset, val_mem.offset);
108+
extism.var_set(key_mem.offset, val_mem.offset);
109109
}
110110

111111
pub fn removeVar(self: Plugin, key: []const u8) void {
112112
_ = self; // to make the interface consistent
113113
const mem = Memory.allocateBytes(key);
114114
defer mem.free();
115-
c.extism_var_set(mem.offset, 0);
115+
extism.extism_var_set(mem.offset, 0);
116116
}
117117

118118
pub fn request(self: Plugin, http_request: http.HttpRequest, body: ?[]const u8) !http.HttpResponse {
@@ -128,9 +128,9 @@ pub const Plugin = struct {
128128
}
129129
};
130130
defer req_body.free();
131-
const offset = c.extism_http_request(req.offset, req_body.offset);
132-
const length = c.extism_length(offset);
133-
const status: u16 = @intCast(c.extism_http_status_code());
131+
const offset = extism.http_request(req.offset, req_body.offset);
132+
const length = extism.length(offset);
133+
const status: u16 = @intCast(extism.http_status_code());
134134

135135
const mem = Memory.init(offset, length);
136136
defer mem.free();

0 commit comments

Comments
 (0)