v/vlib/v/tests/for_in_mut_iterator_val_test.v

51 lines
633 B
V

const (
packets = {
0: &Packet{
pid: 2
}
1: &Packet{
pid: 1
}
}
)
struct Packet {
pid int
handle fn () string
restricted bool
}
struct Reader {
foo int
bar string
mut:
index int
}
fn (mut p Reader) next() ?&Packet {
if p.index + 1 > packets.len {
return error('')
}
if p.index !in packets {
return error('')
}
p.index++
return packets[p.index - 1]
}
fn test_for_in_mut_interator_val() {
r := Reader{}
mut rets := []string{}
for mut packet in r {
println(packet.pid)
rets << '$packet.pid'
}
println(rets)
assert rets.len == 2
assert rets[0] == '2'
assert rets[1] == '1'
}