fix RingBuffer naming 'final'

This commit is contained in:
Schluffe
2026-08-24 22:30:54 +02:00
parent ad3f63424d
commit 05ec3f468d
2 changed files with 5 additions and 5 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
import { expect, test } from "vitest";
import { claim, createRingBuffer } from "./RingBuffer.ts";
import { claim, createRingBuffer, type RingBuffer } from "./RingBuffer.ts";
test("RingBuffer", () => {
expect(() => createRingBuffer(3, () => ({}))).toThrow(
"size must be a power of two",
);
const ring = createRingBuffer(4, () => ({}));
const ring: RingBuffer<object> = createRingBuffer(4, () => ({}));
expect(ring.size).toBe(4);
expect(ring.cursor).toBe(0);
+3 -3
View File
@@ -1,4 +1,4 @@
export type Pooled<T> = {
export type RingBuffer<T> = {
size: number;
mask: number;
cursor: number;
@@ -8,7 +8,7 @@ export type Pooled<T> = {
export function createRingBuffer<T extends object>(
size: number,
create: () => T,
): Pooled<T> {
): RingBuffer<T> {
if ((size & (size - 1)) !== 0) {
throw new Error("size must be a power of two");
}
@@ -26,7 +26,7 @@ export function createRingBuffer<T extends object>(
};
}
export function claim<T>(ring: Pooled<T>): T {
export function claim<T>(ring: RingBuffer<T>): T {
const slot = ring.buffer[ring.cursor];
ring.cursor = (ring.cursor + 1) & ring.mask;