Something went wrong. Try again.
My version of https://github.com/vercel-labs/fx
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031const std = @import("std");
pub fn searchWorkerInputFitsLimit( input_overhead_bytes: usize, query: []const u8, allowed_domains: ?[]const []const u8, blocked_domains: ?[]const []const u8, max_input_bytes: usize,) bool { var input_bytes: usize = 0; addBytes(&input_bytes, input_overhead_bytes) catch return false; addBytes(&input_bytes, query.len) catch return false; addOptionalStrings(&input_bytes, allowed_domains) catch return false; addOptionalStrings(&input_bytes, blocked_domains) catch return false; return input_bytes <= max_input_bytes;}
fn addOptionalStrings(total: *usize, maybe_strings: ?[]const []const u8) !void { const strings = maybe_strings orelse return; for (strings) |value| try addBytes(total, value.len);}
fn addBytes(total: *usize, count: usize) !void { total.* = try std.math.add(usize, total.*, count);}
test "search worker input cap uses conservative serialized bytes" { try std.testing.expect(searchWorkerInputFitsLimit("system".len, "query", &.{"allowed"}, null, 18)); try std.testing.expect(!searchWorkerInputFitsLimit("system".len, "query", &.{"allowed"}, null, 17));}