Skip to content

Commit

Permalink
exposed param build
Browse files Browse the repository at this point in the history
  • Loading branch information
jinzhongjia committed Jun 8, 2024
1 parent fb0629e commit 80b8ddf
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 14 deletions.
49 changes: 41 additions & 8 deletions src/znvim.zig
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,6 @@ pub fn Client(
try self.rpc_client.loop();
}

/// for freeing payload
/// note: this only can free the payload
/// which used allocator from same znvim instance
fn freePayload(self: Self, payload: Payload) void {
self.rpc_client.freePayload(payload);
}

/// for freeing result type
pub fn freeResultType(self: Self, result_type: ResultType) void {
self.rpc_client.freeResultType(result_type);
Expand Down Expand Up @@ -180,7 +173,7 @@ pub fn Client(
if (self.nvim_info != null) {
return;
}
const params = try Payload.arrPayload(0, self.getAllocator());
const params = try self.paramArr(0);
const result = try self.call(infoApiName, params);
if (result == .err) {
return ErrorSet.GetApiInfoFailed;
Expand Down Expand Up @@ -236,6 +229,46 @@ pub fn Client(
return ErrorSet.ApiNotFound;
}
}

pub fn paramNil(_: Self) Payload {
return Payload.nilToPayload();
}

pub fn paramBool(_: Self, val: bool) Payload {
return Payload.boolToPayload(val);
}

pub fn paramInt(_: Self, val: i64) Payload {
return Payload.intToPayload(val);
}

pub fn paramUint(_: Self, val: u64) Payload {
return Payload.uintToPayload(val);
}

pub fn paramFloat(_: Self, val: f64) Payload {
return Payload.floatToPayload(val);
}

pub fn paramStr(self: Self, str: []const u8) !Payload {
return Payload.strToPayload(str, self.getAllocator());
}

pub fn paramBin(self: Self, bin: []const u8) !Payload {
return Payload.binToPayload(bin, self.getAllocator());
}

pub fn paramArr(self: Self, len: usize) !Payload {
return Payload.arrPayload(len, self.getAllocator());
}

pub fn paramMap(self: Self) !Payload {
return Payload.mapPayload(self.getAllocator());
}

pub fn paramExt(self: Self, t: i8, data: []const u8) !Payload {
return Payload.extToPayload(t, data, self.getAllocator());
}
};
}

Expand Down
12 changes: 6 additions & 6 deletions test/test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ test "call function" {
try client.loop();
try client.getApiInfo();

const params = try znvim.Payload.arrPayload(0, std.testing.allocator);
const params = try client.paramArr(0);

const res = try client.call("nvim_get_current_buf", params);
defer client.freeResultType(res);
Expand Down Expand Up @@ -70,13 +70,13 @@ test "notify function" {
try client.loop();
try client.getApiInfo();

var params = try znvim.Payload.arrPayload(3, std.testing.allocator);
var params = try client.paramArr(3);

const param_0 = try znvim.Payload.strToPayload("hello, world!", std.testing.allocator);
const param_0 = try client.paramStr("hello, world!");

const param_1 = znvim.Payload.uintToPayload(1);
const param_1 = client.paramUint(1);

const param_2 = try znvim.Payload.arrPayload(0, std.testing.allocator);
const param_2 = try client.paramArr(0);

try params.setArrElement(0, param_0);
try params.setArrElement(1, param_1);
Expand Down Expand Up @@ -120,7 +120,7 @@ test "socket connect test" {
try client.loop();
try client.getApiInfo();

const params = try znvim.Payload.arrPayload(0, std.testing.allocator);
const params = try client.paramArr(0);

const res = try client.call("nvim_get_current_buf", params);
defer client.freeResultType(res);
Expand Down

0 comments on commit 80b8ddf

Please sign in to comment.