authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-01 20:34:55-08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-01 20:34:55-08:00
log53ebfde6b433ebdb28d4989a345e8d34abf049b7
tree80d82c15ad88ad112a6c6d416f231a2a275ceb3a
parent0c5f879b981352a84edb6daa09a1d6cdb53378d7

std: use decl literals to improve endian ergonomics


2 files changed, 7 insertions(+), 0 deletions(-)

lib/std/builtin.zig+3
...@@ -841,6 +841,9 @@ pub const FloatMode = enum {...@@ -841,6 +841,9 @@ pub const FloatMode = enum {
841pub const Endian = enum {841pub const Endian = enum {
842 big,842 big,
843 little,843 little,
844
845 pub const native = builtin.target.cpu.arch.endian();
846 pub const foreign: Endian = @enumFromInt(1 - @intFromEnum(native));
844};847};
845848
846/// This data structure is used by the Zig language code generation and849/// This data structure is used by the Zig language code generation and
lib/std/mem.zig+4
...@@ -2006,11 +2006,13 @@ fn readPackedIntBig(comptime T: type, bytes: []const u8, bit_offset: usize) T {...@@ -2006,11 +2006,13 @@ fn readPackedIntBig(comptime T: type, bytes: []const u8, bit_offset: usize) T {
2006 } else return @as(T, @bitCast(val));2006 } else return @as(T, @bitCast(val));
2007}2007}
20082008
2009/// Deprecated: use readPackedInt(T, bytes, bit_offset, value, .native)
2009pub const readPackedIntNative = switch (native_endian) {2010pub const readPackedIntNative = switch (native_endian) {
2010 .little => readPackedIntLittle,2011 .little => readPackedIntLittle,
2011 .big => readPackedIntBig,2012 .big => readPackedIntBig,
2012};2013};
20132014
2015/// Deprecated: use readPackedInt(T, bytes, bit_offset, value, .foreign)
2014pub const readPackedIntForeign = switch (native_endian) {2016pub const readPackedIntForeign = switch (native_endian) {
2015 .little => readPackedIntBig,2017 .little => readPackedIntBig,
2016 .big => readPackedIntLittle,2018 .big => readPackedIntLittle,
...@@ -2159,11 +2161,13 @@ fn writePackedIntBig(comptime T: type, bytes: []u8, bit_offset: usize, value: T)...@@ -2159,11 +2161,13 @@ fn writePackedIntBig(comptime T: type, bytes: []u8, bit_offset: usize, value: T)
2159 writeInt(StoreInt, write_bytes[(byte_count - store_size)..][0..store_size], write_value, .big);2161 writeInt(StoreInt, write_bytes[(byte_count - store_size)..][0..store_size], write_value, .big);
2160}2162}
21612163
2164/// Deprecated: use writePackedInt(T, bytes, bit_offset, value, .native)
2162pub const writePackedIntNative = switch (native_endian) {2165pub const writePackedIntNative = switch (native_endian) {
2163 .little => writePackedIntLittle,2166 .little => writePackedIntLittle,
2164 .big => writePackedIntBig,2167 .big => writePackedIntBig,
2165};2168};
21662169
2170/// Deprecated: use writePackedInt(T, bytes, bit_offset, value, .foreign)
2167pub const writePackedIntForeign = switch (native_endian) {2171pub const writePackedIntForeign = switch (native_endian) {
2168 .little => writePackedIntBig,2172 .little => writePackedIntBig,
2169 .big => writePackedIntLittle,2173 .big => writePackedIntLittle,