diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..a2f3535 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,45 @@ +pub fn main() !void { + var gpa = std.heap.DebugAllocator(.{}){}; + const gp_allocator = gpa.allocator(); + defer { + _ = gpa.detectLeaks(); + const deinit_status = gpa.deinit(); + if (deinit_status == .leak) @panic("Allocator leaked"); + } + + var tsa = std.heap.ThreadSafeAllocator{ .child_allocator = gp_allocator }; + const allocator = tsa.allocator(); + + var pool: std.Thread.Pool = undefined; + try pool.init(.{ + .allocator = allocator, + .n_jobs = 4, + }); + defer pool.deinit(); + + var localContentProvider = local_provider.LocalContentProvider{ .threadPool = &pool }; + + const fullName: models.FullName = .{ .path = "/home/adam/1.txt" }; + var item = try localContentProvider.getItemByFullName(fullName, allocator, allocator); + defer item.deinit(); + + const homeFullName: models.FullName = .{ .path = "/home/adam/" }; + var homeItem = try localContentProvider.getItemByFullName(homeFullName, allocator, allocator); + defer homeItem.deinit(); + const c = switch (homeItem.item) { + .container => |c| c, + .element => unreachable, + }; + + var tab1 = Tab.create(&pool, allocator); + tab1.setCurrentLocation(c); + + std.Thread.sleep(1 * std.time.ns_per_s); +} + +const std = @import("std"); +const models = @import("core/models.zig"); +const provider = @import("core/provider/provider.zig"); +const local_provider = @import("core/provider/local.zig"); +const tab = @import("core/tab/tab.zig"); +const Tab = tab.Tab;