It mentions that the size of a string object with type []const u8 is not known at compile time. This is incorrect, as the size is 16-bytes, which is known at compile time. What's not known is the length, given by slice.len. Similarly, a struct containing a member of slice type also has its size known at compile time, unless some conflicting member is present (I don't know if Zig can have unsized types).