| 1 | import x.encoding.asn1 |
| 2 | |
| 3 | struct AExample { |
| 4 | a asn1.OctetString |
| 5 | } |
| 6 | |
| 7 | fn (a AExample) tag() asn1.Tag { |
| 8 | return asn1.default_sequence_tag |
| 9 | } |
| 10 | |
| 11 | fn (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 |
| 18 | type BExample = AExample |
| 19 | |
| 20 | fn 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 | |