From c2c581aa6a38438dd9ed8da0f59019691c5dd45d Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 21 May 2026 04:10:32 -0700 Subject: [PATCH] add sumLen --- src/lib.zig | 2 ++ src/sumLen.zig | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/sumLen.zig diff --git a/src/lib.zig b/src/lib.zig index f295833e44ec375ec91023ea2894945ee0f9540e..933baefd5538dd2c103d9dc958a0433e152ec9ee 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -122,6 +122,7 @@ pub const parseDigits = @import("./parseDigits.zig").parseDigits; pub const from_hex = @import("./from_hex.zig").from_hex; pub const Pointee = @import("./Pointee.zig").Pointee; pub const compareFnSlice = @import("./compareFnSlice.zig").compareFnSlice; +pub const sumLen = @import("./sumLen.zig").sumLen; test { _ = @import("reduceNumber.zig"); @@ -216,4 +217,5 @@ test { _ = @import("from_hex.zig"); _ = @import("Pointee.zig"); _ = @import("compareFnSlice.zig"); + _ = @import("sumLen.zig"); } diff --git a/src/sumLen.zig b/src/sumLen.zig new file mode 100644 index 0000000000000000000000000000000000000000..3a8881d6753644480d9a99c737d923eea34d089e --- /dev/null +++ b/src/sumLen.zig @@ -0,0 +1,28 @@ +const std = @import("std"); +const string = []const u8; +const extras = @import("./lib.zig"); + +pub fn sumLen(comptime T: type, slice: []const []const T) u64 { + var res: u64 = 0; + for (slice) |item| res += item.len; + return res; +} + +test { + try std.testing.expect(sumLen(u8, &.{ &.{4}, &.{3}, &.{0}, &.{9}, &.{6}, &.{7}, &.{1}, &.{2}, &.{5}, &.{8} }) == 10); +} +test { + try std.testing.expect(sumLen(u16, &.{ &.{ 8, 6 }, &.{ 7, 3 }, &.{ 2, 1 }, &.{ 5, 0 }, &.{ 9, 4 } }) == 10); +} +test { + try std.testing.expect(sumLen(u21, &.{ &.{ 5, 4, 6 }, &.{ 1, 8, 3, 2 }, &.{ 9, 0, 7 } }) == 10); +} +test { + try std.testing.expect(sumLen(u32, &.{ &.{ 3, 4 }, &.{ 5, 1, 9, 0, 6, 2, 7, 8 } }) == 10); +} +test { + try std.testing.expect(sumLen(u40, &.{ &.{ 0, 5, 6, 7, 1, 2 }, &.{ 4, 9, 3, 8 } }) == 10); +} +test { + try std.testing.expect(sumLen(u64, &.{&.{ 5, 4, 3, 9, 1, 7, 6, 2, 0, 8 }}) == 10); +} -- 2.54.0