v / vlib / v2 / gen / cleanc / tests / interface_is.v
25 lines · 20 sloc · 356 bytes · 09cc0c5133d075ee6dcff29286dce7eb7d4421da
Raw
1module main
2
3interface Backend {}
4
5struct MetalBackend {}
6
7struct NullBackend {}
8
9fn make_backend() Backend {
10 return MetalBackend{}
11}
12
13fn main() {
14 mut backend := make_backend()
15 if mut backend is MetalBackend {
16 println('metal')
17 } else {
18 println('not-metal')
19 }
20 if mut backend is NullBackend {
21 println('null')
22 } else {
23 println('not-null')
24 }
25}
26