import core::raylib; import core::http; unsafe foreign absolute(number: i32) -> i32 = c("libc.so.6", "abs"); // User identifiers and record fields keep their own names in all three files. record Asset { filename: string, untouched: string } fn start_main() -> i64 { if unsafe absolute(-7) not matches 7 { return 11; } let asset = Asset { filename: "docs/examples/assets/raylib-sprites.png", untouched: "مسار/é.png\0A" }; if asset::filename not matches "docs/examples/assets/raylib-sprites.png" { return 1; } if asset::untouched not matches "مسار/e\u{0301}.png\0A" { return 2; } let a: raylib::Vector2 = raylib::Vector2 { x: 1.25, y: 2.5 }; let b: raylib::Vector2 = raylib::Vector2 { x: a::x, y: a::y }; if b::x not matches 1.25 or b::y not matches 2.5 { return 3; } let key: raylib::Key = raylib::KEY_SPACE; if key not matches raylib::KEY_SPACE { return 4; } let flags = raylib::FLAG_WINDOW_RESIZABLE | raylib::FLAG_VSYNC_HINT; if flags not matches raylib::FLAG_WINDOW_RESIZABLE | raylib::FLAG_VSYNC_HINT { return 5; } let budget: http::ProgressBudget = http::progress_budget(); if budget::max_instructions not matches 4096 { return 6; } let font = raylib::GetFontDefault(); if not font::ok { print(font::error::message); return 7; } let english = raylib::MeasureTextEx(font::value, "سلام ASPL 123", 32.0, 0.0); let arabic = raylib::MeasureTextEx(font::value, "سلام ASPL 123", 32.0, 0.0); if not english::ok or not arabic::ok { return 8; } if english::value::x not matches arabic::value::x { return 9; } let invalid = raylib::MeasureText("bad\ttext", 32); if invalid::ok or invalid::error::code not matches "raylib.invalid_text" { return 10; } print(invalid::error::message); print("\n"); print(asset::filename); print("\n"); print(asset::untouched); print("\nidentity and literals complete\n"); return 0; }