Open phip1611 opened 1 year ago
I'm in favor of option A as well. I assume that a lot of stuff has just ended up in uefi-rs
just by inertia.
Nice. I can work on it in the next two weeks.
General question. The encoding looks way to complex, I think. From my perspective, the following encoding would be sufficient:
fn encode_char(char: char) -> UCS2Char {
let unicode_codepoint = char as u32;
if (unicode_codepoint <= 0xffff) {
UCS2Char(unicode_codepoint)
} else {
panic!()
}
}
Am I missing something?
PS: Oh, that is exactly how the Char16 type in the uefi crate does it :D
Char16
, CStr16
and CString16
along will all tests to this crateUCS2String
or just String
so that people work with ucs2::String
, ucs2::str
and so onuefi
@phip1611 Thanks for the initiative! Option A sounds like a good idea. It fits the general Rust pattern of favoring small, independent crates instead of monolithic ones.
Besides the changes you've mentioned in the comment above, I'd also like to add a few minor clean-ups to the to-do list:
master
branch to main
- for consistency with the uefi-rs
repo.main
(we already have CI checks, they're just not enforced before merging PRs). We might not actually want this since ucs-rs
is a much smaller crate with less risk for breakage, but I'm not certain.CHANGELOG.md
document and start using tags for labeling releases of the crate (again, not sure if we actually need this from the start, considering the smaller API of this library).Sounds good. Could you up our access to this repo's settings? Right now I don't have permissions to do the branch rename or update branch protection rules.
Sounds good. Could you up our access to this repo's settings? Right now I don't have permissions to do the branch rename or update branch protection rules.
Whoops, didn't realize there were permission issues. Should be fixed now.
Thanks. I've done the branch rename and added branch protection rules.
From official documentation/comments it appears that
ucs2
is a base for String handling in theuefi
crate. However, there are exactly two usages in the output protocol implementation (output.rs).The
uefi
-crate providesChar16
CString16
andCStr16
to work with UCS-2/UEFI strings, however.I have the the following variants in mind:
Char16
CString16
andCStr16
from the uefi crate to this crateI think A would be a good solution.
PS: Am I missing something? Is there a specific reason for the status quo?
Ping @nicholasbishop @GabrielMajeri