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 joins strings
|
||||||
Join = F.Curry2(F.Bind2nd[[]string, string, string])(strings.Join)
|
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 {
|
func Eq(left string, right string) bool {
|
||||||
@@ -61,16 +67,6 @@ func Size(s string) int {
|
|||||||
return len(s)
|
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
|
// Format applies a format string to an arbitrary value
|
||||||
func Format[T any](format string) func(t T) string {
|
func Format[T any](format string) func(t T) string {
|
||||||
return 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, "a", Join(",")(A.From("a")))
|
||||||
assert.Equal(t, "", Join(",")(A.Empty[string]()))
|
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