@safs.io/match
Version:
Gale/Shapely deferred acceptance algorithm
31 lines (30 loc) • 1.11 kB
TypeScript
import { LeftEl } from "./left-element";
export declare type RightId = string | number;
export declare type RightSourceObject = {
id: RightId;
capacity: number;
};
declare type Index = number;
declare type RankTable = Record<LeftEl["id"], Index>;
declare type Capacity = number;
export declare class RightEl {
_id: RightId;
_capacity: Capacity;
_rankedCounterparts: LeftEl[];
_acceptedCounterparts: LeftEl[];
_rankTable: RankTable;
_sourceObject: RightSourceObject;
constructor(sourceObject: RightSourceObject);
get id(): RightId;
get acceptedCounterparts(): LeftEl[];
get lastAcceptedCounterpart(): LeftEl;
get atOrOverCapacity(): boolean;
get rankedCounterparts(): LeftEl[];
set rankedCounterparts(counterparts: LeftEl[]);
get sourceObject(): RightSourceObject;
removeLastAcceptedCounterpart(): LeftEl | undefined;
acceptCounterpart(counterpart: LeftEl): LeftEl | null | undefined;
isRankedBetterThan(counterpart: LeftEl, counterpartToRankAgainst: LeftEl): boolean;
willAcceptCounterpart(counterpart: LeftEl): boolean;
}
export {};