terminal/style: compare packed styles directly, no cast needed

Woohoo, Zig 0.14!
pull/7451/head
Qwerasd 2025-05-25 22:51:14 -06:00
parent 19db2e2755
commit 25a708ed98
1 changed files with 3 additions and 4 deletions

View File

@ -87,10 +87,9 @@ pub const Style = struct {
/// True if the style is equal to another style.
pub fn eql(self: Style, other: Style) bool {
const packed_self = PackedStyle.fromStyle(self);
const packed_other = PackedStyle.fromStyle(other);
// TODO: in Zig 0.14, equating packed structs is allowed. Remove this work around.
return @as(u128, @bitCast(packed_self)) == @as(u128, @bitCast(packed_other));
// We convert the styles to packed structs and compare as integers
// because this is much faster than comparing each field separately.
return PackedStyle.fromStyle(self) == PackedStyle.fromStyle(other);
}
/// Returns the bg color for a cell with this style given the cell