From 9918fdd1c6efeb1e71fddaed245738d642eba0fb Mon Sep 17 00:00:00 2001 From: JustAnyone Date: Mon, 4 May 2026 21:26:54 +0300 Subject: [PATCH] Use a set instead of a list for suffix checking --- main.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 175939e..47ea8e8 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,6 @@ import ( "path" "path/filepath" "slices" - "strings" "github.com/gabriel-vasile/mimetype" "github.com/pelletier/go-toml/v2" @@ -35,7 +34,7 @@ var conversionMap = map[string][]string{ "image/gif": {".gif"}, } -var suffixesToCheck []string +var suffixesToCheck = map[string]struct{}{} func loadConfiguration() (*Config, error) { dir, err := os.UserConfigDir() @@ -89,9 +88,7 @@ func loadSuffixes() { for _, extensions := range conversionMap { // Only add unique extensions to the suffixesToCheck list. for _, ext := range extensions { - if !slices.Contains(suffixesToCheck, ext) { - suffixesToCheck = append(suffixesToCheck, ext) - } + suffixesToCheck[ext] = struct{}{} } } } @@ -117,10 +114,10 @@ func shouldEntryBeChecked(entry fs.DirEntry) bool { if !entry.Type().IsRegular() { return false } - for _, suffix := range suffixesToCheck { - if strings.HasSuffix(entry.Name(), suffix) { - return true - } + ext := filepath.Ext(entry.Name()) + _, exists := suffixesToCheck[ext] + if exists { + return true } return false }