2023-08-18 15:15:20 +02:00
|
|
|
aqua Aaa
|
2023-04-14 16:28:17 +03:00
|
|
|
|
2023-08-18 15:15:20 +02:00
|
|
|
import "builtin.aqua"
|
|
|
|
|
|
|
|
export structuralTypingTest
|
|
|
|
|
|
|
|
data WideData:
|
|
|
|
s: string
|
|
|
|
n: u32
|
|
|
|
|
|
|
|
data ExactData:
|
|
|
|
s: string
|
|
|
|
|
|
|
|
ability ExactAbility:
|
|
|
|
s: string
|
|
|
|
arr(s: string, s2: string, s3: string, s4: string) -> string
|
|
|
|
exact: ExactData
|
|
|
|
|
|
|
|
ability WideAbility:
|
|
|
|
s: string
|
|
|
|
arr(s: string, s2: string, s3: string, s4: string) -> string
|
|
|
|
g: string
|
|
|
|
exact: WideData
|
|
|
|
|
|
|
|
func ss(s1: string, s2: string, s3: string, s4: string) -> string:
|
|
|
|
<- Op.concat_strings(Op.concat_strings(Op.concat_strings(s1, s2), s3), s4)
|
|
|
|
|
|
|
|
func main{ExactAbility}(someData: ExactData, secondData: ExactData) -> string:
|
|
|
|
<- ExactAbility.arr(someData.s, ExactAbility.exact.s, secondData.s, ExactAbility.s)
|
|
|
|
|
|
|
|
func structuralTypingTest() -> string:
|
|
|
|
wd = WideData(s = "some_string", n = 32)
|
|
|
|
|
|
|
|
WAbility = WideAbility(s = "ab_string", g = "", arr = ss, exact = wd)
|
|
|
|
<- main{WAbility}(wd, WAbility.exact)
|