I kind of like being more explicit. Let’s say Rust 1.8 or some other 2017 version adds structural records so you can do this:
let point = { .x = 3, .y = 5};
this would actually conflict with blocks, but the .x disambiguates it. You can emulate keyword arguments if your function takes a structural record:
drawRectangle({ .coords = { .x = 50, .y = 10 }, .dimensions = { .width = 150, .height = 120 }, .color = { .red = 1.0, .green = 0.0, .blue = 0.5 }});
the signature of the function being
fn drawRectangle(keywords: { .dimensions = { .width: i32, .height: i32 }, .coords = { .y: i32, .x: i32}, .color = { .red: f32, .green: f32, .blue: f32}})