@specs-feup/alpakka
Version:
A Smali/APK source-to-source compiler written in Typescript
31 lines (27 loc) • 746 B
text/typescript
import BaseGraph from "./BaseGraph.js";
import BaseNode from "./BaseNode.js";
import cytoscape from "cytoscape";
export type NodeConstructor<
D extends BaseNode.Data,
S extends BaseNode.ScratchData,
N extends BaseNode.Class<D, S>,
> = new (
graph: BaseGraph.Class,
node: cytoscape.NodeSingular,
_d: D,
_sd: S,
) => N;
export interface NodeBuilder<
D extends BaseNode.Data,
S extends BaseNode.ScratchData,
> {
buildData(data: BaseNode.Data): D;
buildScratchData(scratchData: BaseNode.ScratchData): S;
}
export interface NodeTypeGuard<
D extends BaseNode.Data,
S extends BaseNode.ScratchData,
> {
isDataCompatible(data: BaseNode.Data): data is D;
isScratchDataCompatible(sData: BaseNode.ScratchData): sData is S;
}