13 lines
340 B
TypeScript
13 lines
340 B
TypeScript
export interface LatestRequestTicket<T> {
|
|
readonly generation: number
|
|
readonly snapshot: T
|
|
}
|
|
|
|
export interface LatestRequestGuard<T> {
|
|
next(snapshot: T): LatestRequestTicket<T>
|
|
invalidate(): number
|
|
isLatest(ticket: LatestRequestTicket<T>): boolean
|
|
}
|
|
|
|
export function createLatestRequestGuard<T>(): LatestRequestGuard<T>
|