DVUI

validateFieldPtrTypeSlice

Validate is a pointer to a slice

Parameters

#
field_name:[]const u8
[]const u8
caller:[]const u8
[]const u8
ptr_type:type
type

Source

Implementation

#
pub fn validateFieldPtrTypeSlice(field_name: []const u8, comptime caller: []const u8, comptime ptr_type: type) void {
    switch (@typeInfo(ptr_type)) {
        .pointer => |p1| {
            switch (@typeInfo(p1.child)) {
                .pointer => |ptr| {
                    if (ptr.size == .slice)
                        return;
                },
                else => {},
            }
        },
        else => {},
    }
    @compileError(std.fmt.comptimePrint(
        "Field {s} cannot be displayed. {s} requires a pointer to a slice, but received a {s}.",
        .{ field_name, caller, @typeName(ptr_type) },
    ));
}