a modern tui library written in zig
at v0.2.1 835 B view raw
1const std = @import("std"); 2const grapheme = @import("grapheme"); 3const DisplayWidth = @import("DisplayWidth"); 4 5/// A thin wrapper around zg data 6const Unicode = @This(); 7 8grapheme_data: grapheme.GraphemeData, 9width_data: DisplayWidth.DisplayWidthData, 10 11/// initialize all unicode data vaxis may possibly need 12pub fn init(alloc: std.mem.Allocator) !Unicode { 13 return .{ 14 .grapheme_data = try grapheme.GraphemeData.init(alloc), 15 .width_data = try DisplayWidth.DisplayWidthData.init(alloc), 16 }; 17} 18 19/// free all data 20pub fn deinit(self: *const Unicode) void { 21 self.grapheme_data.deinit(); 22 self.width_data.deinit(); 23} 24 25/// creates a grapheme iterator based on str 26pub fn graphemeIterator(self: *const Unicode, str: []const u8) grapheme.Iterator { 27 return grapheme.Iterator.init(str, &self.grapheme_data); 28}