binarytrees/1.zig Node allocator
In this Zig code, every Node object had its own allocator. Assigning allocator to every Node object is absurd.
Removing allocator from Node struct would be a simple solution.
However simingly @hanabi1224 does not like that idea because Zig language usually assigns specific allocator to each data structure and it's fair to do so, reflecting the language's norm of its own standard library.
Fine. Zig language allows static members in struct.
So I let specific allocator still remain in Node structure, but it can be changed to be static. The allocator in Node now became static and set only once.
Sounds reasonable.
I think a bufferd writer is also useful:
const stdout_file = std.io.getStdOut().writer(); var bw = std.io.bufferedWriter(stdout_file); const stdout = bw.writer();
An arena allocator should also be faster when releasing memory
This is unfair to assign allocator to each node.