Improve channel type hint

This commit is contained in:
Melody Becker 2025-06-17 13:37:05 +02:00
parent 7a09569c03
commit d303f551f3
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI

View file

@ -106,7 +106,7 @@ func Compact[T any](a []T, compactor func(acc T, next T) T) T {
// Returns a channel that all elements in a will be written to in order. // Returns a channel that all elements in a will be written to in order.
// Once all values of a have been sent, the channel will be closed. // Once all values of a have been sent, the channel will be closed.
// The channel must be fully consumed until closed. Otherwise a goroutine will be leaked // The channel must be fully consumed until closed. Otherwise a goroutine will be leaked
func ToChannel[T any](a []T) chan T { func ToChannel[T any](a []T) <-chan T {
c := make(chan T) c := make(chan T)
go func() { go func() {
for _, v := range a { for _, v := range a {
@ -120,7 +120,7 @@ func ToChannel[T any](a []T) chan T {
// FromChannel reads from a channel until closed, appending every element to a slice. // FromChannel reads from a channel until closed, appending every element to a slice.
// If you do not know how many elements to expect, use an expectedSize of 0 // If you do not know how many elements to expect, use an expectedSize of 0
func FromChannel[T any](c chan T, expectedSize uint) []T { func FromChannel[T any](c <-chan T, expectedSize uint) []T {
a := make([]T, expectedSize) a := make([]T, expectedSize)
for v := range c { for v := range c {
a = append(a, v) a = append(a, v)