From 706806433fc6c156603502277f253646f08f013f Mon Sep 17 00:00:00 2001 From: david-swift Date: Thu, 31 Oct 2024 18:26:37 +0100 Subject: [PATCH] Add initializer without replace --- .../AsyncFunctions.swift | 16 ++++++++++++++++ .../LevenshteinTransformations/Functions.swift | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/Sources/LevenshteinTransformations/AsyncFunctions.swift b/Sources/LevenshteinTransformations/AsyncFunctions.swift index 5823132..2433c52 100644 --- a/Sources/LevenshteinTransformations/AsyncFunctions.swift +++ b/Sources/LevenshteinTransformations/AsyncFunctions.swift @@ -30,4 +30,20 @@ public struct AsyncFunctions { self.insert = insert } + /// Initialize a functions value. + /// - Parameters: + /// - delete: Delete the element at a certain index. + /// - insert: Insert a certain element at a certain index. + public init( + delete: @escaping (Int) async -> Void, + insert: @escaping (Int, Element) async -> Void + ) { + self.replace = { index, element in + await delete(index) + await insert(index, element) + } + self.delete = delete + self.insert = insert + } + } diff --git a/Sources/LevenshteinTransformations/Functions.swift b/Sources/LevenshteinTransformations/Functions.swift index 18dc7b5..f3c247e 100644 --- a/Sources/LevenshteinTransformations/Functions.swift +++ b/Sources/LevenshteinTransformations/Functions.swift @@ -30,4 +30,20 @@ public struct Functions { self.insert = insert } + /// Initialize a functions value. + /// - Parameters: + /// - delete: Delete the element at a certain index. + /// - insert: Insert a certain element at a certain index. + public init( + delete: @escaping (Int) -> Void, + insert: @escaping (Int, Element) -> Void + ) { + self.replace = { index, element in + delete(index) + insert(index, element) + } + self.delete = delete + self.insert = insert + } + }