v2 / vlib / v / tests / vls / sample_mod1 / sample.v
100 lines · 78 sloc · 1.98 KB · 1a4cf3b7486cbdc1e7845474bc7efe2147cab71a
Raw
1// for vls module test
2module sample_mod1
3
4// public
5
6// This line is not the PublicStruct1's comment
7// PublicStruct1 is a public struct
8pub struct PublicStruct1 { // And PublicStruct1 should init here
9 // data_int is a int data
10 data_int int
11 // this is a string
12 data_string string // note: init = ''
13 // and this is a u8
14 data_u8 u8
15}
16
17// This line is not the public_const1's comment
18// public_const1 is a public const
19pub const public_const1 = 'a public const' // public_const1 is a string
20
21// This line is not the PublicEnum1's comment
22// PublicEnum1 contains `a`,`b` and `c`
23pub enum PublicEnum1 {
24 // a is a PublicEnum1 data
25 a
26 // b is a PublicEnum1 data
27 b
28 // c is a PublicEnum1 data
29 c
30}
31
32// PublicInterface1 is a public interface, has fields and methods
33pub interface PublicInterface1 {
34 // val is a int type data field
35 val int
36 // method is a void func return string
37 method() string
38}
39
40// PublicAlias1_1 is a sumtype of `u8`,`u16` and `int`
41pub type PublicAlias1_1 = u8 | u16 | int
42
43// PublicAlias1_2 is a alias of `PublicStruct1`
44pub type PublicAlias1_2 = PublicStruct1
45
46// PublicCB is a funtion type
47pub type PublicCB = fn (msg &char, arg usize)
48
49// public_fn1 is a public function, return string
50pub fn public_fn1(val int) string {
51 return '${val}'
52}
53
54// public is a static method of `PublicStruct1`
55pub fn PublicStruct1.public() PublicStruct1 {
56 return PublicStruct1{}
57}
58
59// new is a method of `PublicStruct1`
60pub fn (mut p PublicStruct1) new() PublicStruct1 {
61 return PublicStruct1{}
62}
63
64// private
65
66struct PrivateStruct1 {
67 data int
68 data_string string
69}
70
71const private_const1 = 'a private const'
72
73enum PrivateEnum1 {
74 a
75 b
76 c
77}
78
79interface PrivateInterface1 {
80 val int
81 method() string
82}
83
84type PrivateAlias1_1 = u8 | u16 | int
85
86type PrivateAlias1_2 = PublicStruct1
87
88type PrivateCB = fn (msg &char, arg usize)
89
90fn private_fn1(val int) string {
91 return '${val}'
92}
93
94fn PrivateStruct1.new() PrivateStruct1 {
95 return PrivateStruct1{}
96}
97
98fn PublicStruct1.private() PublicStruct1 {
99 return PublicStruct1{}
100}
101