Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 13x 19x 20x | import type { PersistenceHandler } from "./PersistenceHandler.js";
/**
* In-memory persistence handler.
*
* Maps to Python `MemoryBufferPersistence` (added in Drain3 v0.9.1).
*
* State is held in a memory buffer — useful for testing, temporary
* use, or scenarios where persistence to disk is not needed. State
* is lost on process restart.
*
* Zero dependencies.
*
* @example
* ```typescript
* const handler = new MemoryPersistence();
* const miner = new TemplateMiner({ persistenceHandler: handler });
* miner.addLogMessage("test");
* // State is in memory; accessible via handler.loadState()
* ```
*/
export class MemoryPersistence implements PersistenceHandler {
private _buffer: Uint8Array | null = null;
/**
* Stores the state in the internal memory buffer.
*/
saveState(state: Uint8Array): void {
this._buffer = state;
}
/**
* Returns the stored state, or null if nothing has been saved.
*/
loadState(): Uint8Array | null {
return this._buffer;
}
}
|