18 lines
405 B
Text
18 lines
405 B
Text
uint :: #type u64;
|
|
sint :: #type s64;
|
|
rune :: #type u32;
|
|
rawptr :: #type *void;
|
|
|
|
Default_Align :: #run 2 * align_of(rawptr);
|
|
|
|
align_of :: ($T: Type) -> uint #expand {
|
|
return #run -> uint {
|
|
info := type_info(struct{ p: u8; t: T; });
|
|
return info.members[1].offset_in_bytes.(uint);
|
|
};
|
|
}
|
|
|
|
bitcast :: ($T: Type, expr: Code) -> T #expand {
|
|
value := expr;
|
|
return (*value).(*T).*;
|
|
}
|