about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rename.zig6
-rw-r--r--src/root.zig14
2 files changed, 9 insertions, 11 deletions
diff --git a/src/rename.zig b/src/rename.zig
index e4c7e8c..1fdb5ac 100644
--- a/src/rename.zig
+++ b/src/rename.zig
@@ -108,8 +108,8 @@ fn titleCase(comptime orig: [:0]const u8) [:0]const u8 {
     return title[0..n:0];
 }
 
-fn renamespace(container: type, comptime namespace: [:0]const u8,
-               comptime excludes: []const []const u8) type {
+pub fn space(container: type, comptime namespace: [:0]const u8,
+             comptime excludes: []const []const u8) type {
     const src = @typeInfo(container).@"struct".decls;
     @setEvalBranchQuota(src.len * 1000);
     var dest: [src.len]StructField = undefined;
@@ -146,7 +146,7 @@ fn renamespace(container: type, comptime namespace: [:0]const u8,
     } });
 }
 
-pub const janet = renamespace(@cImport(@cInclude("janet.h")), "janet", &.{
+pub const janet = space(@cImport(@cInclude("janet.h")), "janet", &.{
     // Extern variables
     "janet_type_names", "janet_signal_names", "janet_status_names",
     "janet_instructions",
diff --git a/src/root.zig b/src/root.zig
index e2f79c8..bcc601d 100644
--- a/src/root.zig
+++ b/src/root.zig
@@ -287,24 +287,22 @@ pub fn unwrap(T: type, x: Value) !T {
         .@"struct" => |info| y: {
             const src = janet.unwrapStruct(x);
             var dest: T = undefined;
-            inline for (info.fields) |field| {
+            break :y inline for (info.fields) |field| {
                 const k = keyword(field.name);
                 const v = janet.structGet(src, k);
                 @field(dest, field.name) = if (isNil(v))
-                    field.defaultValue() orelse return error.MissingStructField
+                    field.defaultValue() orelse break error.MissingStructField
                 else
                     try unwrap(field.type, v);
-            }
-            break :y dest;
+            } else dest;
         },
         .@"union" => |info| if (info.tag_type != null) y: {
             const head = janet.tupleHead(janet.unwrapTuple(x));
             const k, const v = tupleData(2, head).*;
-            inline for (info.fields) |field| {
+            break :y inline for (info.fields) |field| {
                 if (equal(keyword(field.name), k))
-                    break :y @unionInit(T, field.name,
-                                            try unwrap(field.type, v));
-            } else break :y error.UnionTagNotFound;
+                    break @unionInit(T, field.name, try unwrap(field.type, v));
+            } else error.UnionTagNotFound;
         } else @compileError("can't wrap untagged union"),
         else => @compileError(@typeName(T)),
     };