@benev/slate
Version:
frontend web stuff
14 lines (13 loc) • 382 B
TypeScript
import { Slice } from "./slice.js";
export interface SliceAccessors<S, X> {
getter: (state: S) => X;
setter: (state: S, x: X) => S;
}
export interface Sliceable<S> {
readonly state: S;
transmute(fun: (state: S) => S): void;
slice<X>({}: SliceAccessors<S, X>): Slice<S, X>;
}
export type SliceOptions<S, X> = SliceAccessors<S, X> & {
parent: Sliceable<S>;
};