From 2fd8fbf5286e5a4abdb03704d69f02e32d3f1a6b Mon Sep 17 00:00:00 2001 From: apocelipes Date: Fri, 3 May 2024 16:17:33 +0800 Subject: [PATCH] strings: move TrimPrefix and TrimSuffix to stringslite To help packages use these funcions like "os" use stringsTrimSuffix. --- src/internal/stringslite/strings.go | 14 ++++++++++++++ src/strings/strings.go | 10 ++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/internal/stringslite/strings.go b/src/internal/stringslite/strings.go index ce8a913297..c0c6e2dce5 100644 --- a/src/internal/stringslite/strings.go +++ b/src/internal/stringslite/strings.go @@ -122,3 +122,17 @@ func CutSuffix(s, suffix string) (before string, found bool) { } return s[:len(s)-len(suffix)], true } + +func TrimPrefix(s, prefix string) string { + if HasPrefix(s, prefix) { + return s[len(prefix):] + } + return s +} + +func TrimSuffix(s, suffix string) string { + if HasSuffix(s, suffix) { + return s[:len(s)-len(suffix)] + } + return s +} diff --git a/src/strings/strings.go b/src/strings/strings.go index 11c558c4c3..d0246a9d72 100644 --- a/src/strings/strings.go +++ b/src/strings/strings.go @@ -1075,19 +1075,13 @@ func TrimSpace(s string) string { // TrimPrefix returns s without the provided leading prefix string. // If s doesn't start with prefix, s is returned unchanged. func TrimPrefix(s, prefix string) string { - if HasPrefix(s, prefix) { - return s[len(prefix):] - } - return s + return stringslite.TrimPrefix(s, prefix) } // TrimSuffix returns s without the provided trailing suffix string. // If s doesn't end with suffix, s is returned unchanged. func TrimSuffix(s, suffix string) string { - if HasSuffix(s, suffix) { - return s[:len(s)-len(suffix)] - } - return s + return stringslite.TrimSuffix(s, suffix) } // Replace returns a copy of the string s with the first n