displayArray
Parameters
- src:std.builtin.SourceLocation
- std.builtin.SourceLocation
- ContainerT:type
- type
- field_name:[]const u8
- []const u8
- field_value_ptr:anytype
- anytype
- depth:usize
- usize
- field_option:FieldOptions
- FieldOptions
- options:anytype
- anytype
Source
Implementation
pub fn displayArray(
src: std.builtin.SourceLocation,
comptime ContainerT: type,
comptime field_name: []const u8,
field_value_ptr: anytype,
comptime depth: usize,
field_option: FieldOptions,
options: anytype,
) void {
validateFieldPtrType(field_name, &.{.array}, "displayArray", @TypeOf(field_value_ptr));
if (field_option.displayMode() == .none) return;
if (displayContainer(src, field_option.displayLabel(field_name), field_option.defaultExpanded())) |vbox| {
defer vbox.deinit();
var alignment: dvui.Alignment = .init(@src(), depth);
defer alignment.deinit();
var element_field_option = field_option;
for (field_value_ptr, 0..) |*val, i| {
var hbox = dvui.box(@src(), .{ .dir = .horizontal }, .{ .expand = .horizontal, .id_extra = i });
defer hbox.deinit();
var field_name_buf: [21]u8 = undefined; // 20 chars = u64 + ':'
const field_name_str = std.fmt.bufPrint(&field_name_buf, "{d}:", .{i}) catch "#";
element_field_option.labelSet(field_name_str);
displayField(@src(), ContainerT, field_name, val, depth, element_field_option, options, &alignment);
}
}
}