New Upstream Release - golang-github-lithammer-fuzzysearch

Ready changes

Summary

Merged new upstream version: 1.1.5 (was: 1.1.3).

Resulting package

Built on 2022-12-14T22:52 (took 2m23s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases golang-github-lithammer-fuzzysearch-dev

Lintian Result

Diff

diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 5b6459f..ffb93d6 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -1,20 +1,28 @@
 name: Go
-on: [push, pull_request]
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+    branches:
+      - master
+
 jobs:
   test:
     strategy:
       matrix:
         platform: [ubuntu-latest, macos-latest, windows-latest]
-        go-version: ['1.15', '1.16']
+        go-version: ['1.17', '1.18']
     runs-on: ${{ matrix.platform }}
     steps:
       - name: Setup Go
-        uses: actions/setup-go@v2.1.4
+        uses: actions/setup-go@v3
         with:
           go-version: ${{ matrix.go-version }}
 
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Download Go dependencies
         run: go mod download
diff --git a/README.md b/README.md
index edb6665..5551bc0 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,9 @@ func main() {
 	
 	// Unicode normalized matching.
 	fuzzy.MatchNormalized("cartwheel", "cartwhéél") // true
+
+	// Case insensitive matching.
+	fuzzy.MatchFold("ArTeeL", "cartwheel") // true
 }
 ```
 
diff --git a/debian/changelog b/debian/changelog
index aa138b7..a6b0ee7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-github-lithammer-fuzzysearch (1.1.5-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 14 Dec 2022 22:50:27 -0000
+
 golang-github-lithammer-fuzzysearch (1.1.3-1) unstable; urgency=medium
 
   [ Takuma Shibuya ]
diff --git a/fuzzy/fuzzy.go b/fuzzy/fuzzy.go
index 259058e..7ae7091 100644
--- a/fuzzy/fuzzy.go
+++ b/fuzzy/fuzzy.go
@@ -13,7 +13,7 @@ import (
 )
 
 func noopTransformer() transform.Transformer {
-	return transform.Nop
+	return nopTransformer{}
 }
 
 func foldTransformer() transform.Transformer {
@@ -234,6 +234,11 @@ func (r Ranks) Less(i, j int) bool {
 }
 
 func stringTransform(s string, t transform.Transformer) (transformed string) {
+	// Fast path for the nop transformer to prevent unnecessary allocations.
+	if _, ok := t.(nopTransformer); ok {
+		return s
+	}
+
 	var err error
 	transformed, _, err = transform.String(t, s)
 	if err != nil {
@@ -243,7 +248,7 @@ func stringTransform(s string, t transform.Transformer) (transformed string) {
 	return
 }
 
-type unicodeFoldTransformer struct{}
+type unicodeFoldTransformer struct{ transform.NopResetter }
 
 func (unicodeFoldTransformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
 	runes := bytes.Runes(src)
@@ -261,4 +266,8 @@ func (unicodeFoldTransformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc
 	return n, n, err
 }
 
-func (unicodeFoldTransformer) Reset() {}
+type nopTransformer struct{ transform.NopResetter }
+
+func (nopTransformer) Transform(dst []byte, src []byte, atEOF bool) (int, int, error) {
+	return 0, len(src), nil
+}
diff --git a/fuzzy/levenshtein.go b/fuzzy/levenshtein.go
index 237923d..4fb5838 100644
--- a/fuzzy/levenshtein.go
+++ b/fuzzy/levenshtein.go
@@ -10,10 +10,10 @@ package fuzzy
 // http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Levenshtein_distance#C
 func LevenshteinDistance(s, t string) int {
 	r1, r2 := []rune(s), []rune(t)
-	column := make([]int, len(r1)+1)
+	column := make([]int, 1, 64)
 
 	for y := 1; y <= len(r1); y++ {
-		column[y] = y
+		column = append(column, y)
 	}
 
 	for x := 1; x <= len(r2); x++ {

Debdiff

File lists identical (after any substitutions)

No differences were encountered in the control files

More details

Full run details