Merge pull request #312 from Grovre/main

Fix C# source gen
This commit is contained in:
a2x 2025-02-03 17:04:27 +10:00 committed by GitHub
commit 188528714f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 2 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
/.idea
/.vscode
/.vs
/target
Cargo.lock

View File

@ -16,7 +16,11 @@ impl CodeWriter for InterfaceMap {
false,
|fmt| {
for (name, value) in ifaces {
writeln!(fmt, "public const nint {} = {:#X};", name, value)?;
if *value > i32::MAX as u64 {
writeln!(fmt, "public static readonly nint {} = unchecked((nint){:#X});", name, value)?;
} else {
writeln!(fmt, "public const nint {} = {:#X};", name, value)?;
};
}
Ok(())

View File

@ -41,7 +41,12 @@ impl CodeWriter for SchemaMap {
.members
.iter()
.map(|member| {
format!("{} = {:#X}", member.name, member.value)
let hex = if member.value < 0 || member.value > i32::MAX as i64 {
format!("unchecked(({}){})", type_name, member.value)
} else {
format!("{:#X}", member.value)
};
format!("{} = {}", member.name, hex)
})
.collect::<Vec<_>>()
.join(",\n");