This commit is contained in:
2026-02-19 15:05:01 +03:00
parent 6d2ef61432
commit 4232591fcc
3 changed files with 29 additions and 0 deletions

10
set.go
View File

@@ -1,7 +1,9 @@
package extypes
import (
"fmt"
"reflect"
"strings"
)
type Set[T any] []T
@@ -108,3 +110,11 @@ func (s Set[T]) Map(f func(e T) T) Set[T] {
}
return s
}
func (s Set[T]) Join(sep string) string {
st := make([]string, len(s))
for i, v := range s {
st[i] = fmt.Sprintf("%v", v)
}
return strings.Join(st, sep)
}

View File

@@ -1,7 +1,9 @@
package extypes
import (
"fmt"
"reflect"
"strings"
)
type Slice[T any] []T
@@ -103,3 +105,11 @@ func (s Slice[T]) Map(f func(e T) T) Slice[T] {
}
return s
}
func (s Slice[T]) Join(sep string) string {
st := make([]string, len(s))
for i, v := range s {
st[i] = fmt.Sprintf("%v", v)
}
return strings.Join(st, sep)
}

View File

@@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"reflect"
"strings"
)
type Tuple[T any] struct {
@@ -60,6 +61,14 @@ func (t Tuple[T]) ForEach(f func(int, T)) Tuple[T] {
return t
}
func (t Tuple[T]) Join(sep string) string {
st := make([]string, len(t.s))
for i, v := range t.s {
st[i] = fmt.Sprintf("%v", v)
}
return strings.Join(st, sep)
}
func (t Tuple[T]) String() string { return fmt.Sprint(t.s) }
func (t *Tuple[T]) UnmarshalJSON(data []byte) error { return json.Unmarshal(data, &t.s) }
func (t Tuple[T]) MarshalJSON() ([]byte, error) { return json.Marshal(t.s) }