Commit 1f37b70344

Andrew Barchuk <andrew@raindev.io>
2024-11-25 00:09:36
Remove unused `buf` field from `std.fmt.Parser` (#21994)
And make the initialization less error prone by removing a default for iter, which is required for a functional parser std: Add a brief doc comment for `std.fmt.Parser`
1 parent b2030cb
Changed files (1)
lib
lib/std/fmt.zig
@@ -224,7 +224,6 @@ pub const Placeholder = struct {
     pub fn parse(comptime str: anytype) Placeholder {
         const view = std.unicode.Utf8View.initComptime(&str);
         comptime var parser = Parser{
-            .buf = &str,
             .iter = view.iterator(),
         };
 
@@ -311,10 +310,13 @@ pub const Specifier = union(enum) {
     named: []const u8,
 };
 
+/// A stream based parser for format strings.
+///
+/// Allows to implement formatters compatible with std.fmt without replicating
+/// the standard library behavior.
 pub const Parser = struct {
-    buf: []const u8,
     pos: usize = 0,
-    iter: std.unicode.Utf8Iterator = undefined,
+    iter: std.unicode.Utf8Iterator,
 
     // Returns a decimal number or null if the current character is not a
     // digit