|
@@ -489,39 +489,20 @@ def gen_helpers(inp):
|
|
|
l('// helper function to convert "anything" to a Range struct')
|
|
|
l('pub fn asRange(val: anytype) Range {')
|
|
|
l(' const type_info = @typeInfo(@TypeOf(val));')
|
|
|
- l(' // FIXME: naming convention change between 0.13 and 0.14-dev')
|
|
|
- l(' if (@hasField(@TypeOf(type_info), "Pointer")) {')
|
|
|
- l(' switch (type_info) {')
|
|
|
- l(' .Pointer => {')
|
|
|
- l(' switch (type_info.Pointer.size) {')
|
|
|
- l(' .One => return .{ .ptr = val, .size = @sizeOf(type_info.Pointer.child) },')
|
|
|
- l(' .Slice => return .{ .ptr = val.ptr, .size = @sizeOf(type_info.Pointer.child) * val.len },')
|
|
|
- l(' else => @compileError("FIXME: Pointer type!"),')
|
|
|
- l(' }')
|
|
|
- l(' },')
|
|
|
- l(' .Struct, .Array => {')
|
|
|
- l(' @compileError("Structs and arrays must be passed as pointers to asRange");')
|
|
|
- l(' },')
|
|
|
- l(' else => {')
|
|
|
- l(' @compileError("Cannot convert to range!");')
|
|
|
- l(' },')
|
|
|
- l(' }')
|
|
|
- l(' } else {')
|
|
|
- l(' switch (type_info) {')
|
|
|
- l(' .pointer => {')
|
|
|
- l(' switch (type_info.pointer.size) {')
|
|
|
- l(' .one => return .{ .ptr = val, .size = @sizeOf(type_info.pointer.child) },')
|
|
|
- l(' .slice => return .{ .ptr = val.ptr, .size = @sizeOf(type_info.pointer.child) * val.len },')
|
|
|
- l(' else => @compileError("FIXME: Pointer type!"),')
|
|
|
- l(' }')
|
|
|
- l(' },')
|
|
|
- l(' .@"struct", .array => {')
|
|
|
- l(' @compileError("Structs and arrays must be passed as pointers to asRange");')
|
|
|
- l(' },')
|
|
|
- l(' else => {')
|
|
|
- l(' @compileError("Cannot convert to range!");')
|
|
|
- l(' },')
|
|
|
- l(' }')
|
|
|
+ l(' switch (type_info) {')
|
|
|
+ l(' .pointer => {')
|
|
|
+ l(' switch (type_info.pointer.size) {')
|
|
|
+ l(' .one => return .{ .ptr = val, .size = @sizeOf(type_info.pointer.child) },')
|
|
|
+ l(' .slice => return .{ .ptr = val.ptr, .size = @sizeOf(type_info.pointer.child) * val.len },')
|
|
|
+ l(' else => @compileError("FIXME: Pointer type!"),')
|
|
|
+ l(' }')
|
|
|
+ l(' },')
|
|
|
+ l(' .@"struct", .array => {')
|
|
|
+ l(' @compileError("Structs and arrays must be passed as pointers to asRange");')
|
|
|
+ l(' },')
|
|
|
+ l(' else => {')
|
|
|
+ l(' @compileError("Cannot convert to range!");')
|
|
|
+ l(' },')
|
|
|
l(' }')
|
|
|
l('}')
|
|
|
l('')
|