podman
1{{.Label}}:
2switch timeout{{.Sfx}} := z.EncBasicHandle().ChanRecvTimeout; {
3case timeout{{.Sfx}} == 0: // only consume available
4for {
5select {
6case b{{.Sfx}} := <-{{.Chan}}:
7{{ .Slice }} = append({{.Slice}}, b{{.Sfx}})
8default:
9break {{.Label}}
10}
11}
12case timeout{{.Sfx}} > 0: // consume until timeout
13tt{{.Sfx}} := time.NewTimer(timeout{{.Sfx}})
14for {
15select {
16case b{{.Sfx}} := <-{{.Chan}}:
17{{.Slice}} = append({{.Slice}}, b{{.Sfx}})
18case <-tt{{.Sfx}}.C:
19// close(tt.C)
20break {{.Label}}
21}
22}
23default: // consume until close
24for b{{.Sfx}} := range {{.Chan}} {
25{{.Slice}} = append({{.Slice}}, b{{.Sfx}})
26}
27}
28