import { ArrayDiffSegment } from './ArrayDiffSegment'; import { Diff } from '../Diff'; const arrayDiffSymbol: unique symbol = Symbol('array diff'); const arrayDiff = function ( parameters: Omit, 'kind'> ): ArrayDiff { return { kind: arrayDiffSymbol, ...parameters }; }; interface ArrayDiff extends Diff { kind: typeof arrayDiffSymbol; segments: ArrayDiffSegment[]; } const isArrayDiff = function (diff: any): diff is ArrayDiff { return 'kind' in diff && diff.kind === arrayDiffSymbol; }; export type { ArrayDiff }; export { arrayDiff, isArrayDiff };