mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
fix: optimize strings package
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@@ -35,6 +35,12 @@ var (
|
||||
|
||||
// Join joins strings
|
||||
Join = F.Curry2(F.Bind2nd[[]string, string, string])(strings.Join)
|
||||
|
||||
// Equals returns a predicate that tests if a string is equal
|
||||
Equals = F.Curry2(Eq)
|
||||
|
||||
// Includes returns a predicate that tests for the existence of the search string
|
||||
Includes = F.Curry2(F.Swap(strings.Contains))
|
||||
)
|
||||
|
||||
func Eq(left string, right string) bool {
|
||||
@@ -61,16 +67,6 @@ func Size(s string) int {
|
||||
return len(s)
|
||||
}
|
||||
|
||||
// Includes returns a predicate that tests for the existence of the search string
|
||||
func Includes(searchString string) func(string) bool {
|
||||
return F.Bind2nd(strings.Contains, searchString)
|
||||
}
|
||||
|
||||
// Equals returns a predicate that tests if a string is equal
|
||||
func Equals(other string) func(string) bool {
|
||||
return F.Bind2nd(Eq, other)
|
||||
}
|
||||
|
||||
// Format applies a format string to an arbitrary value
|
||||
func Format[T any](format string) func(t T) string {
|
||||
return func(t T) string {
|
||||
|
@@ -36,3 +36,15 @@ func TestJoin(t *testing.T) {
|
||||
assert.Equal(t, "a", Join(",")(A.From("a")))
|
||||
assert.Equal(t, "", Join(",")(A.Empty[string]()))
|
||||
}
|
||||
|
||||
func TestEquals(t *testing.T) {
|
||||
assert.True(t, Equals("a")("a"))
|
||||
assert.False(t, Equals("a")("b"))
|
||||
assert.False(t, Equals("b")("a"))
|
||||
}
|
||||
|
||||
func TestIncludes(t *testing.T) {
|
||||
assert.True(t, Includes("a")("bab"))
|
||||
assert.False(t, Includes("bab")("a"))
|
||||
assert.False(t, Includes("b")("a"))
|
||||
}
|
||||
|
Reference in New Issue
Block a user