commit 53ebfde6b433ebdb28d4989a345e8d34abf049b7 (tree)
parent 0c5f879b981352a84edb6daa09a1d6cdb53378d7
Author: Meghan Denny <hello@nektro.net>
Date: Thu, 1 Jan 2026 20:34:55 -0800
std: use decl literals to improve endian ergonomics
Diffstat:
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig
@@ -841,6 +841,9 @@ pub const FloatMode = enum {
pub const Endian = enum {
big,
little,
+
+ pub const native = builtin.target.cpu.arch.endian();
+ pub const foreign: Endian = @enumFromInt(1 - @intFromEnum(native));
};
/// This data structure is used by the Zig language code generation and
diff --git a/lib/std/mem.zig b/lib/std/mem.zig
@@ -2006,11 +2006,13 @@ fn readPackedIntBig(comptime T: type, bytes: []const u8, bit_offset: usize) T {
} else return @as(T, @bitCast(val));
}
+/// Deprecated: use readPackedInt(T, bytes, bit_offset, value, .native)
pub const readPackedIntNative = switch (native_endian) {
.little => readPackedIntLittle,
.big => readPackedIntBig,
};
+/// Deprecated: use readPackedInt(T, bytes, bit_offset, value, .foreign)
pub const readPackedIntForeign = switch (native_endian) {
.little => readPackedIntBig,
.big => readPackedIntLittle,
@@ -2159,11 +2161,13 @@ fn writePackedIntBig(comptime T: type, bytes: []u8, bit_offset: usize, value: T)
writeInt(StoreInt, write_bytes[(byte_count - store_size)..][0..store_size], write_value, .big);
}
+/// Deprecated: use writePackedInt(T, bytes, bit_offset, value, .native)
pub const writePackedIntNative = switch (native_endian) {
.little => writePackedIntLittle,
.big => writePackedIntBig,
};
+/// Deprecated: use writePackedInt(T, bytes, bit_offset, value, .foreign)
pub const writePackedIntForeign = switch (native_endian) {
.little => writePackedIntBig,
.big => writePackedIntLittle,