print("--- Vec2 userdata ---")
local a = vec2_new(3, 4)
local b = vec2_new(1, 2)
print("a =", vec2_tostring(a))
print("b =", vec2_tostring(b))
local c = a + b
print("a + b =", vec2_tostring(c))
local d = a * 2
print("a * 2 =", vec2_tostring(d))
print("#a =", #a)
print("a == a?", a == vec2_new(3, 4))
print("a == b?", a == b)
print("\n--- Rust function ---")
print("rust_add(10, 32) =", rust_add(10, 32))
print("\n--- Coroutine (Lua side) ---")
function make_counter(start, stop)
return coroutine.create(function()
for i = start, stop do
coroutine.yield(i)
end
return "done"
end)
end
print("\n--- Error handling ---")
local ok, err = pcall(function()
error("intentional error from Lua")
end)
print("pcall caught error:", ok, err)
print("\n--- Table for Rust ---")
function make_config()
return {
name = "rilua",
version = 1,
features = {"embedding", "userdata", "coroutines"},
}
end