code: func AppendDirent(data []byte, dir Dirent) []byte {
  	de := dirent{
  		Ino:     dir.Inode,
  		Namelen: uint32(len(dir.Name)),
  		Type:    dir.Type,
  	}
  	de.Off = uint64(len(data) + direntSize + (len(dir.Name)+7)&^7)
  	data = append(data, (*[direntSize]byte)(unsafe.Pointer(&de))[:]...)
  	data = append(data, dir.Name...)
  	n := direntSize + uintptr(len(dir.Name))
  	if n%8 != 0 {
  		var pad [8]byte
  		data = append(data, pad[:8-n%8]...)
  	}
  	return data
  }
docs: // AppendDirent appends the encoded form of a directory entry to data
  // and returns the resulting slice.