From 0ef5efd8d833eb658e106fcd88733942bfa971bf Mon Sep 17 00:00:00 2001 From: reugenio Date: Thu, 18 Dec 2025 17:30:16 +0100 Subject: [PATCH] feat: initDeferred() para control manual de archivo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Nueva función initDeferred() que NO carga/crea archivo automáticamente - Útil cuando se necesita verificar BD antes de decidir qué cargar - init() mantiene comportamiento original (loadOrCreate automático) - Permite arquitectura 3 fuentes: Archivo > BD > Defaults 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/zcatconfig.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/zcatconfig.zig b/src/zcatconfig.zig index 1e4b252..2d25821 100644 --- a/src/zcatconfig.zig +++ b/src/zcatconfig.zig @@ -666,6 +666,24 @@ pub fn ConfigManager( return self; } + /// Inicializa el ConfigManager SIN cargar/crear archivo + /// - Crea Config con valores por defecto del struct + /// - NO carga archivo, NO crea archivo + /// - Útil cuando se necesita control manual (ej: cargar de BD primero) + /// - Después llamar load() o save() manualmente + pub fn initDeferred( + allocator: std.mem.Allocator, + file_path: []const u8, + ) Self { + return Self{ + .allocator = allocator, + .config = ConfigType.init(allocator), + .file_path = file_path, + .dirty = false, + .observers = .{}, + }; + } + /// Libera recursos y guarda si hay cambios pendientes pub fn deinit(self: *Self) void { // Auto-save si hay cambios