TileSourcetype
Data cut by place and by detail. Place and Detail are the package's own types. *
Import it
import type { TileSource } from "@johnmorrisdotca/hoshi-stars/door";
Definition
interface TileSource<Place, Detail, Tile> {
kind: "tiles";
info: SourceInfo;
need(place: Place, detail: Detail): readonly string[];
load(key: string, signal: AbortSignal): Promise<Tile>;
bytes(tile: Tile): number;
}
Members
| Name | Type | Description |
|---|---|---|
kind | "tiles" | |
info | SourceInfo | |
need | (place: Place, detail: Detail): readonly string[] | The keys of the tiles a place needs at a detail. Pure: no fetching. |
load | (key: string, signal: AbortSignal): Promise<Tile> | Loads one tile. The source may use the network or not; it must stop when the signal aborts. |
bytes | (tile: Tile): number | The tile's size in memory, in bytes, for the budget. |
Examples
import type { TileSource } from "./data-door.ts";
declare const info: import("./data-door.ts").SourceInfo;
const source: TileSource<string, number, Uint8Array> = {
kind: "tiles",
info,
need: (place, detail) => [`${place}/${detail}`],
load: async () => new Uint8Array(16),
bytes: (tile) => tile.byteLength,
};