diff --git a/src/svg/icons.zig b/src/svg/icons.zig index 6a9b5d1..5b4ad4f 100644 --- a/src/svg/icons.zig +++ b/src/svg/icons.zig @@ -22,15 +22,6 @@ pub const SvgIcon = struct { pub fn init(allocator: std.mem.Allocator) !SvgIcon { var self = SvgIcon{}; - // const sets = [_]IconSet{ .bootstrap, .dripicons, .hero_outline, .hero_solid, .material }; - // - // inline for (sets) |set| { - // const data = embedded_data.get(set).?; - // - // try self.loadSet(allocator, set, data); - // } - // - inline for (std.meta.fields(IconSet)) |field| { const set = @field(IconSet, field.name); const data = embedded_data.get(set); @@ -55,6 +46,12 @@ pub const SvgIcon = struct { return self.icon_map.get(key); } + pub fn getIcon(self: *const SvgIcon,allocator: std.mem.Allocator, kind: []const u8, name: []const u8) ?[]const u8 { + const key = std.fmt.allocPrint(allocator, "{s}:{s}", .{ kind, name }) catch return null; + defer allocator.free(key); + return self.icon_map.get(key); + } + pub fn count(self: *const SvgIcon) usize { return self.icon_map.count(); } @@ -109,3 +106,12 @@ pub const SvgIcon = struct { } } }; + +pub const fallback_svg = + \\
+ \\ + \\ + \\ ? + \\ + \\
+;