v2 / vlib / v / tests / options / option_generic_array_field_test.v
39 lines · 34 sloc · 488 bytes · 9fcca599a59c2379bdf5a9171b9e4fedafd49781
Raw
1module main
2
3@[heap]
4struct FLQueue[T] {
5mut:
6 inner [8]?T
7}
8
9fn (mut f FLQueue[T]) put[T](element T) {
10 for index, item in f.inner {
11 if item == none {
12 f.inner[index] = element
13 return
14 }
15 }
16 panic('put: No free slot')
17}
18
19fn (mut f FLQueue[T]) get[T]() ?T {
20 for item in f.inner {
21 if item != none {
22 return item
23 }
24 }
25 return none
26}
27
28@[heap]
29struct Thread {
30 stack [1024]u8
31}
32
33fn test_main() {
34 mut q := FLQueue[Thread]{}
35 t := Thread{}
36 q.put(t)
37 p := q.get()
38 println(p)
39}
40