From 547d1d86fa2eabca61ffe780d3efe71b7dfbd53f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 4 May 2023 14:01:05 -0700 Subject: [PATCH] add trimPrefixEnsure/trimSuffixEnsure --- src/lib.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib.zig b/src/lib.zig index 7d7e8872f7a6f9d3dae4182fef1d6f5c33ad7c9a..4986926ecac1e4e12eaf4c456758af1852d75002 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -46,6 +46,11 @@ pub fn trimPrefix(in: string, prefix: string) string { return in; } +pub fn trimPrefixEnsure(in: string, prefix: string) ?string { + if (!std.mem.startsWith(u8, in, prefix)) return null; + return in[prefix.len..]; +} + pub fn trimSuffix(in: string, suffix: string) string { if (std.mem.endsWith(u8, in, suffix)) { return in[0 .. in.len - suffix.len]; @@ -53,6 +58,11 @@ pub fn trimSuffix(in: string, suffix: string) string { return in; } +pub fn trimSuffixEnsure(in: string, suffix: string) ?string { + if (!std.mem.endsWith(u8, in, suffix)) return null; + return in[0 .. in.len - suffix.len]; +} + pub fn base64EncodeAlloc(alloc: std.mem.Allocator, input: string) !string { const base64 = std.base64.standard.Encoder; var buf = try alloc.alloc(u8, base64.calcSize(input.len)); -- 2.54.0