feat: initDeferred() para control manual de archivo

- 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 <noreply@anthropic.com>
This commit is contained in:
reugenio 2025-12-18 17:30:16 +01:00
parent 04462afc5c
commit 0ef5efd8d8

View file

@ -666,6 +666,24 @@ pub fn ConfigManager(
return self; 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 /// Libera recursos y guarda si hay cambios pendientes
pub fn deinit(self: *Self) void { pub fn deinit(self: *Self) void {
// Auto-save si hay cambios // Auto-save si hay cambios