const std = @import("std"); pub fn needsQuotes(path: []const u8) bool { return std.mem.findScalar(u8, path, ' ') != null;} pub fn isRepresentable(path: []const u8) bool { if (path.len > 0 and path[0] == '"') return false; for (path) |byte| { if (byte == '\t' or byte == '\n' or byte == '\r') return false; } return !needsQuotes(path) or std.mem.findScalar(u8, path, '"') == null;} test "representable paths cannot open picker quote grammar" { try std.testing.expect(!isRepresentable("\"leading-quote")); try std.testing.expect(isRepresentable("embedded-\"-quote"));}
const std = @import("std");
pub fn needsQuotes(path: []const u8) bool {
return std.mem.findScalar(u8, path, ' ') != null;
}
pub fn isRepresentable(path: []const u8) bool {
if (path.len > 0 and path[0] == '"') return false;
for (path) |byte| {
if (byte == '\t' or byte == '\n' or byte == '\r') return false;
}
return !needsQuotes(path) or std.mem.findScalar(u8, path, '"') == null;
}
test "representable paths cannot open picker quote grammar" {
try std.testing.expect(!isRepresentable("\"leading-quote"));
try std.testing.expect(isRepresentable("embedded-\"-quote"));
}