v2 / vlib / v / tests / fns / aliased_interface_methods_test.v
32 lines · 26 sloc · 644 bytes · faac1fd31cfcfc3257dcd664c34b78095f04d78f
Raw
1import x.encoding.asn1
2
3struct AExample {
4 a asn1.OctetString
5}
6
7fn (a AExample) tag() asn1.Tag {
8 return asn1.default_sequence_tag
9}
10
11fn (a AExample) payload() ![]u8 {
12 mut out := []u8{}
13 out << asn1.encode(a.a)!
14 return out
15}
16
17// BExample is aliased type, without redefined methods of AExample
18type BExample = AExample
19
20fn test_main() {
21 exa := AExample{
22 a: asn1.OctetString.new('hi')!
23 }
24 exb := BExample(exa)
25 assert '${exa.tag()}' == 'universal-true-16'
26 assert exa.payload()!.len == 4
27 assert asn1.encode(exa)!.len == 6
28
29 assert '${exb.tag()}' == 'universal-true-16'
30 assert exb.payload()!.len == 4
31 assert asn1.encode(exb)!.len == 6
32}
33