62 lines
712 B
Plaintext
62 lines
712 B
Plaintext
module math
|
|
|
|
struct vec2 {
|
|
x: i32
|
|
y: i32
|
|
}
|
|
|
|
struct vec3 {
|
|
x: i32
|
|
y: i32
|
|
z: i32
|
|
}
|
|
|
|
struct color {
|
|
r: i32
|
|
g: i32
|
|
b: i32
|
|
a: i32
|
|
}
|
|
|
|
struct example {
|
|
a: {
|
|
a: i32
|
|
}
|
|
b: {
|
|
b: {
|
|
c: i32
|
|
}
|
|
c: {
|
|
d: i32
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
export enum message {
|
|
quit
|
|
move {
|
|
x: i32
|
|
y: i32
|
|
}
|
|
}
|
|
|
|
export func add(a: i32 b: i32): i32
|
|
{
|
|
let message: message = enum math::message::move { x = 1 y = 1 }
|
|
|
|
match message {
|
|
quit q {}
|
|
move m {
|
|
m.x = 23
|
|
m.y = 23
|
|
}
|
|
}
|
|
|
|
return math::add_internal(a b)
|
|
}
|
|
|
|
func add_internal(a: i32 b: i32): i32
|
|
{
|
|
return a + b
|
|
} |