From 53ebfde6b433ebdb28d4989a345e8d34abf049b7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 1 Jan 2026 20:34:55 -0800 Subject: [PATCH] std: use decl literals to improve endian ergonomics --- lib/std/builtin.zig | 3 +++ lib/std/mem.zig | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 1ef77de9a5..12269131b3 100644 --- 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 index 6612c6d618..b2a71cfd6b 100644 --- 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,