Download packages/pi-tui/src/undo-stack.ts from SaylorTwift/kimi-code: direct link, hf CLI and curl.
- Browser
- Download file 643 Bytes
-
https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/pi-tui/src/undo-stack.ts
- Command line
-
hf download hf://SaylorTwift/kimi-code/packages/pi-tui/src/undo-stack.ts
-
curl -L -o undo-stack.ts https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/pi-tui/src/undo-stack.ts
643 Bytes
| /** | |
| * Generic undo stack with clone-on-push semantics. | |
| * | |
| * Stores deep clones of state snapshots. Popped snapshots are returned | |
| * directly (no re-cloning) since they are already detached. | |
| */ | |
| export class UndoStack<S> { | |
| private stack: S[] = []; | |
| /** Push a deep clone of the given state onto the stack. */ | |
| push(state: S): void { | |
| this.stack.push(structuredClone(state)); | |
| } | |
| /** Pop and return the most recent snapshot, or undefined if empty. */ | |
| pop(): S | undefined { | |
| return this.stack.pop(); | |
| } | |
| /** Remove all snapshots. */ | |
| clear(): void { | |
| this.stack.length = 0; | |
| } | |
| get length(): number { | |
| return this.stack.length; | |
| } | |
| } | |