diff --git a/src/app.zig b/src/app.zig index 31352a8..7331699 100644 --- a/src/app.zig +++ b/src/app.zig @@ -85,8 +85,10 @@ const window_plugin: Plugin = .{ }; fn ensureStuff(app: *Self) !void { - try app.resources.set(Window{ .raw = 0 }); - try app.resources.set(Renderer{ .raw = 0 }); + try app.resources.setMany(.{ + Window{ .raw = 0 }, + Renderer{ .raw = 0 }, + }); if (app.resources.getPtr(Window)) |win| { std.debug.print("[WINDOW] {}\n", .{win.raw}); diff --git a/src/plugin/storage.zig b/src/plugin/storage.zig index 4b41afa..951c604 100644 --- a/src/plugin/storage.zig +++ b/src/plugin/storage.zig @@ -29,6 +29,17 @@ pub fn deinit(self: *Self) void { } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// const window_plugin: Plugin = .{ +/// .name = "Window", +/// .description = "SDL3 Window", +/// .build = build, +/// }; +/// +/// try app.plugins.add(window_plugin); +/// ``` /// ---------------------------------------------------- pub fn add( self: *Self, diff --git a/src/resource/storage.zig b/src/resource/storage.zig index 9f1f3cf..cfaab68 100644 --- a/src/resource/storage.zig +++ b/src/resource/storage.zig @@ -33,6 +33,11 @@ pub fn deinit(self: *Self) void { } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// try app.resources.set(Window{ .raw = 0 }); +/// ``` /// ---------------------------------------------------- pub fn set( self: *Self, @@ -42,6 +47,30 @@ pub fn set( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// try app.resources.setMany(.{ +/// Window{ .raw = 0 }, +/// Renderer{ .raw = 0 }, +/// }); +/// ``` +/// ---------------------------------------------------- +pub fn setMany( + self: *Self, + values: anytype, +) !void { + inline for (values) |value| { + try self.set(value); + } +} + +/// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// try app.resources.remove(Window); +/// ``` /// ---------------------------------------------------- pub fn remove( self: *Self, @@ -51,6 +80,11 @@ pub fn remove( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// const window = try app.resources.getOrSet(Window{ .raw = 0 }); +/// ``` /// ---------------------------------------------------- pub fn getOrSet( self: *Self, @@ -90,6 +124,11 @@ pub fn getOrSet( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// if (app.resources.getPtr(Window)) |window| {...} +/// ``` /// ---------------------------------------------------- pub fn getPtr( self: *Self, @@ -100,8 +139,13 @@ pub fn getPtr( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// if (app.resources.get(Window)) |window| {...} +/// ``` /// ---------------------------------------------------- -pub fn getConstPtr( +pub fn get( self: *Self, comptime T: type, ) ?*const T { @@ -110,6 +154,11 @@ pub fn getConstPtr( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// const window = try app.resources.require(Window); +/// ``` /// ---------------------------------------------------- pub fn require( self: *Self, @@ -171,6 +220,11 @@ pub fn getMany( } /// ---------------------------------------------------- +/// # Example +/// +/// ```zig +/// if (!app.resources.contains(Window)) {...} +/// ``` /// ---------------------------------------------------- pub fn contains( self: *const Self,