@jawis/shared-algs
Version:
Data structures for building concurrent programs.
70 lines (69 loc) • 1.29 kB
TypeScript
export type SharedValidityVectorDeps = {
size: number;
sharedArray: Int32Array | Uint32Array;
useChunkVersion: boolean;
};
/**
*
* - Stores index version, to be able to detect invalid references.
*
* notes
* - Linear complexity. Suited for base cases in larger structures.
*
* todo
* - quick fix: uses one word per validity bit.
*/
export declare class SharedValidityVector {
deps: SharedValidityVectorDeps;
static BYTE_OVERHEAD: number;
static BLOCK_SIZE: number;
/**
*
*/
constructor(deps: SharedValidityVectorDeps);
/**
*
*/
static getExpectedByteSize: (n: number) => number;
/**
*
*/
get: () => {
index: number;
version: number;
};
/**
*
*/
tryGet: () => {
index: number;
version: number;
} | undefined;
/**
*
*/
invalidate: (index: number, version: number) => void;
/**
*
*/
isValid: (index: number, version: number) => boolean;
/**
*
*/
isFull: () => boolean;
/**
*
*/
isEmpty: () => boolean;
/**
*
*/
getCount: () => number;
/**
*
*/
[Symbol.iterator](): Generator<{
index: number;
version: number;
}>;
}