Function format [src]

Prototype

pub fn format( component: Component, comptime fmt_str: []const u8, _: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void

Parameters

component: Componentfmt_str: []const u8_: std.fmt.FormatOptions

Source

pub fn format( component: Component, comptime fmt_str: []const u8, _: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void { if (fmt_str.len == 0) { try writer.print("std.Uri.Component{{ .{s} = \"{}\" }}", .{ @tagName(component), std.zig.fmtEscapes(switch (component) { .raw, .percent_encoded => |string| string, }), }); } else if (comptime std.mem.eql(u8, fmt_str, "raw")) switch (component) { .raw => |raw| try writer.writeAll(raw), .percent_encoded => |percent_encoded| { var start: usize = 0; var index: usize = 0; while (std.mem.indexOfScalarPos(u8, percent_encoded, index, '%')) |percent| { index = percent + 1; if (percent_encoded.len - index < 2) continue; const percent_encoded_char = std.fmt.parseInt(u8, percent_encoded[index..][0..2], 16) catch continue; try writer.print("{s}{c}", .{ percent_encoded[start..percent], percent_encoded_char, }); start = percent + 3; index = percent + 3; } try writer.writeAll(percent_encoded[start..]); }, } else if (comptime std.mem.eql(u8, fmt_str, "%")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isUnreserved), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "user")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isUserChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "password")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isPasswordChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "host")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isHostChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "path")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isPathChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "query")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isQueryChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else if (comptime std.mem.eql(u8, fmt_str, "fragment")) switch (component) { .raw => |raw| try percentEncode(writer, raw, isFragmentChar), .percent_encoded => |percent_encoded| try writer.writeAll(percent_encoded), } else @compileError("invalid format string '" ++ fmt_str ++ "'"); }