Core Methods
createDiff
public static func createDiff(
source: String,
destination: String,
algorithm: DiffAlgorithm = .megatron,
includeMetadata: Bool = true,
sourceStartLine: Int? = nil,
destStartLine: Int? = nil
) -> DiffResult
Creates a diff between two strings using advanced diffing algorithms.
applyDiff
public static func applyDiff(
to source: String,
diff: DiffResult
) throws -> String
Applies a diff to a source string with automatic truncated source detection.
createAndDisplayDiff
public static func createAndDisplayDiff(
source: String,
destination: String,
format: DiffDisplayFormat,
algorithm: DiffAlgorithm = .megatron
) -> String
Creates and displays a diff in one convenient call.
parseDiffFromASCII
public static func parseDiffFromASCII(_ asciiDiff: String) throws -> DiffResult
Parses ASCII diff text back into a DiffResult for AI integration.
Algorithms
public enum DiffAlgorithm {
case flash // โก Fastest (14.5ms)
case optimus // ๐ค Line-aware CollectionDiff
case megatron // ๐ง Semantic analysis (default)
case zoom // ๐ Simple character-based
}
Display Formats
public enum DiffDisplayFormat {
case ai // Plain ASCII output for AI models
}
Encoding Formats
public enum DiffEncoding {
case base64 // Base64 encoded string
case jsonString // JSON string representation
case jsonData // JSON data object
}
Example Usage
import MultiLineDiff
// Basic diff creation
let diff = MultiLineDiff.createDiff(
source: "Hello, D1F!",
destination: "Hello, Swift!",
algorithm: .flash
)
// Apply diff
let result = try MultiLineDiff.applyDiff(to: source, diff: diff)
// ASCII format for AI
let asciiDiff = MultiLineDiff.createAndDisplayDiff(
source: source,
destination: destination,
format: .ai
)
// Parse ASCII diff
let parsedDiff = try MultiLineDiff.parseDiffFromASCII(asciiDiff)
// Base64 encoding
let base64Diff = try MultiLineDiff.createBase64Diff(
source: source,
destination: destination
)
๐ View Complete Source Code โ