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:
parent
04462afc5c
commit
0ef5efd8d8
1 changed files with 18 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue