@benev/slate
Version:
frontend web stuff
19 lines (13 loc) • 359 B
text/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>
}