def to_s
flags = 0
flags |= F_SIZE if @size
flags |= F_UIDGID if @uid && @gid
flags |= F_PERMISSIONS if @permissions
flags |= F_ACMODTIME if @atime && @mtime
flags |= F_EXTENDED if @extended
buffer = buffers.writer
buffer.write_long flags
buffer.write_int64 @size if @size
buffer.write_long @uid, @gid if @uid && @gid
buffer.write_long @permissions if @permissions
buffer.write_long @atime, @mtime if @atime && @mtime
if @extended
buffer.write_long @extended.size
@extended.each { |k,v| buffer.write_string k, v }
end
buffer.to_s
end