@phroun/paged-buffer
Version:
High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities
85 lines • 2.72 kB
TypeScript
/**
* @fileoverview Operation Distance Calculator
* Calculates logical distance between buffer operations for merge decisions
* @author Jeffrey R. Day
* @version 1.0.0
*/
import { type OperationType, type BufferOperation, type DistanceCalculationOptions } from '../types/common';
/**
* Represents position information for an operation
*/
declare class OperationPosition {
preExecution: number;
postExecution: number | null;
constructor(preExecution: number, postExecution?: number | null);
/**
* Set the post-execution position
*/
setPostExecution(position: number): void;
/**
* Check if this position info is complete (has both pre and post execution positions)
*/
isComplete(): boolean;
}
/**
* Lightweight operation descriptor for distance calculations
*/
declare class OperationDescriptor {
type: OperationType;
position: OperationPosition;
dataLength: number;
originalDataLength: number;
operationNumber: number;
constructor(type: OperationType, position: number, dataLength?: number, originalDataLength?: number, operationNumber?: number);
/**
* Create from a BufferOperation
*/
static fromBufferOperation(bufferOp: BufferOperation): OperationDescriptor;
/**
* Set post-execution position
*/
setPostExecutionPosition(position: number): void;
/**
* Get the length of content this operation adds to the final buffer
*/
getInsertedLength(): number;
}
/**
* Calculator for logical distance between operations
*/
declare class OperationDistanceCalculator {
/**
* Calculate logical distance between two operations
*/
static calculateDistance(op1: OperationDescriptor, op2: OperationDescriptor, options?: DistanceCalculationOptions): number;
/**
* Calculate the range affected by an operation in post-execution coordinates
*/
private static _calculateOperationRange;
/**
* Calculate distance from an operation to a range
*/
private static _calculateDistanceToRange;
/**
* Calculate distance for insert operations
*/
private static _calculateInsertDistance;
/**
* Calculate distance for delete operations
*/
private static _calculateDeleteDistance;
/**
* Calculate distance for overwrite operations
*/
private static _calculateOverwriteDistance;
/**
* Log debug distance calculation
*/
private static _logDistanceCalculation;
/**
* Get debug distance calculation
*/
private static _getDebugDistanceCalculation;
}
export { OperationPosition, OperationDescriptor, OperationDistanceCalculator };
//# sourceMappingURL=operation-distance.d.ts.map