From 8f5493eaf08ceaf46e5a1a79a8a6666c0c61b161 Mon Sep 17 00:00:00 2001 From: skycurtain Date: Mon, 10 Nov 2025 02:49:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1tracer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tracers.ts/tracers/array-tracer.ts | 58 ++++++++++++++++--- .../types/command/array-tracer-command.ts | 2 +- 2 files changed, 51 insertions(+), 9 deletions(-) diff --git a/src/tracers.ts/tracers/array-tracer.ts b/src/tracers.ts/tracers/array-tracer.ts index 9e02749..7d00f92 100644 --- a/src/tracers.ts/tracers/array-tracer.ts +++ b/src/tracers.ts/tracers/array-tracer.ts @@ -21,8 +21,8 @@ export class ArrayTracer { registry.register("ArrayTracer", arrayTracer.tracerId); const commander = Commander.getInstance(); commander.command({ - tracer: null, action: "define", + tracer: null, params: { type: "ArrayTracer", id: arrayTracer.tracerId, @@ -35,21 +35,63 @@ export class ArrayTracer { public preset(array: T[]) { const commander = Commander.getInstance(); commander.command({ - tracer: this.tracerId, action: "preset", + tracer: this.tracerId, params: array, }); } - public extend(size: number) {} + public extend(size: number) { + const commander = Commander.getInstance(); + commander.command({ + action: "extend", + tracer: this.tracerId, + params: { size }, + }); + } - public shrink(size: number) {} + public shrink(size: number) { + const commander = Commander.getInstance(); + commander.command({ + action: "shrink", + tracer: this.tracerId, + params: { size }, + }); + } - public pick(index: number) {} + public pick(index: number) { + const commander = Commander.getInstance(); + commander.command({ + action: "pick", + tracer: this.tracerId, + params: { index }, + }); + } - public drop(index: number) {} + public drop(index: number) { + const commander = Commander.getInstance(); + commander.command({ + action: "drop", + tracer: this.tracerId, + params: { index }, + }); + } - public patch(index: number, value: T) {} + public patch(index: number, value: T) { + const commander = Commander.getInstance(); + commander.command({ + action: "patch", + tracer: this.tracerId, + params: { index, value }, + }); + } - public reset(index: number) {} + public reset(index: number) { + const commander = Commander.getInstance(); + commander.command({ + action: "reset", + tracer: this.tracerId, + params: { index }, + }); + } } diff --git a/src/tracers.ts/types/command/array-tracer-command.ts b/src/tracers.ts/types/command/array-tracer-command.ts index fb91097..1662d42 100644 --- a/src/tracers.ts/types/command/array-tracer-command.ts +++ b/src/tracers.ts/types/command/array-tracer-command.ts @@ -43,7 +43,7 @@ export type ArrayTracerPatchCommand = { export type ArrayTracerResetCommand = { action: "reset"; tracer: string; - params: null; + params: { index: number }; }; export type ArrayTracerCommand =