basic records support

This commit is contained in:
Neemek 2026-08-17 17:08:24 +02:00 committed by Neemek
parent 19011e67da
commit ff11d7e0ed
Signed by: neemek
GPG key ID: 84FFE4D7D40AB25E
11 changed files with 522 additions and 138 deletions

29
records.ang Normal file
View file

@ -0,0 +1,29 @@
type User = (
id: int,
name: str,
)
user := {
user_id := 0
all_users := []User
(
get_all: fn() -> [User] { all_users },
new: fn(name: str) -> User {
data := (id: { user_id = user_id + 1 }, name:)
all_users.append(data)
data
},
fmt: fn(user: User) -> str {
user.name + "(" + str(user.id) + ")"
}
)
}
abe := user.new("abe")
lincoln := user.new("lincoln")
println(abe)
println(lincoln)