Centralizes configuration, eliminates unnecessary copying of config

This commit is contained in:
Nikolay Govorov
2026-01-26 03:22:45 +00:00
parent 5c91076660
commit b17abe4d56
12 changed files with 834 additions and 740 deletions

View File

@@ -5,6 +5,7 @@ const Allocator = std.mem.Allocator;
const log = @import("../log.zig");
const App = @import("../App.zig");
const Config = @import("../Config.zig");
const Notification = @import("../Notification.zig");
const uuidv4 = @import("../id.zig").uuidv4;
@@ -29,11 +30,11 @@ fn TelemetryT(comptime P: type) type {
disabled: bool,
run_mode: App.RunMode,
run_mode: Config.RunMode,
const Self = @This();
pub fn init(app: *App, run_mode: App.RunMode) !Self {
pub fn init(app: *App, run_mode: Config.RunMode) !Self {
const disabled = isDisabled();
if (builtin.mode != .Debug and builtin.is_test == false) {
log.info(.telemetry, "telemetry status", .{ .disabled = disabled });
@@ -145,7 +146,7 @@ const NoopProvider = struct {
return .{};
}
fn deinit(_: NoopProvider) void {}
pub fn send(_: NoopProvider, _: ?[]const u8, _: App.RunMode, _: Event) !void {}
pub fn send(_: NoopProvider, _: ?[]const u8, _: Config.RunMode, _: Event) !void {}
};
extern fn setenv(name: [*:0]u8, value: [*:0]u8, override: c_int) c_int;
@@ -161,7 +162,7 @@ test "telemetry: disabled by environment" {
return .{};
}
fn deinit(_: @This()) void {}
pub fn send(_: @This(), _: ?[]const u8, _: App.RunMode, _: Event) !void {
pub fn send(_: @This(), _: ?[]const u8, _: Config.RunMode, _: Event) !void {
unreachable;
}
};
@@ -206,7 +207,7 @@ test "telemetry: sends event to provider" {
const MockProvider = struct {
iid: ?[]const u8,
run_mode: ?App.RunMode,
run_mode: ?Config.RunMode,
allocator: Allocator,
events: std.ArrayListUnmanaged(Event),
@@ -221,7 +222,7 @@ const MockProvider = struct {
fn deinit(self: *MockProvider) void {
self.events.deinit(self.allocator);
}
pub fn send(self: *MockProvider, iid: ?[]const u8, run_mode: App.RunMode, events: Event) !void {
pub fn send(self: *MockProvider, iid: ?[]const u8, run_mode: Config.RunMode, events: Event) !void {
if (self.iid == null) {
try testing.expectEqual(null, self.run_mode);
self.iid = iid.?;