aboutsummaryrefslogtreecommitdiff
path: root/src/http/Url.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/Url.zig')
-rw-r--r--src/http/Url.zig39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/http/Url.zig b/src/http/Url.zig
deleted file mode 100644
index 4a0a2b0..0000000
--- a/src/http/Url.zig
+++ /dev/null
@@ -1,39 +0,0 @@
-const std = @import("std");
-
-const Segment = union(enum) {
- literal: []const u8,
- parameter: []const u8,
-
- pub fn format(self: @This(), writer: *std.Io.Writer) !void {
- try writer.print("{s}{{ {s} }}", .{ @tagName(self), switch (self) {
- inline else => |s| s,
- } });
- }
-};
-
-pub fn Template(comptime template: []const u8) []const Segment {
- var segments: []const Segment = &.{};
- var t = template;
-
- if (template.len == 0 or template[0] != '/') {
- @compileError("template needs to be absolute");
- }
-
- while (t.len > 0) {
- const index = std.mem.indexOfScalar(u8, t, '/');
- const segment = t[0 .. index orelse t.len];
- t = t[(index orelse t.len - 1) + 1 ..];
-
- if (segment.len > 0) {
- const s: []const Segment = &.{seg: {
- if (segment[0] == '{' and segment[segment.len - 1] == '}') {
- break :seg .{ .parameter = segment[1 .. segment.len - 1] };
- } else {
- break :seg .{ .literal = segment };
- }
- }};
- segments = segments ++ s;
- }
- }
- return segments;
-}