I much prefer a solution which does not require the use of string literals like what I proposed here.
Not using string literals allows embedding Rust code directly in the assembly, which can be convenient. Letting inline assembly return value makes thing feel very Rust-like too, here's an example:
let val = asm {
inw {reg => return}, {const = 0x40 + PORT_OFFSET}
};
I'm not a fan of Unix-style mesh together words like inlateout
and those don't really fit with the naming conventions of Rust either.