+const fileItemMinLen = 3
+
+// fileItemScanner implements bufio.SplitFunc for parsing incoming byte slices into complete tokens
+func fileItemScanner(data []byte, _ bool) (advance int, token []byte, err error) {
+ if len(data) < fileItemMinLen {
+ return 0, nil, nil
+ }
+
+ advance = fileItemMinLen + int(data[2])
+ return advance, data[0:advance], nil
+}
+
+// Write implements the io.Writer interface for FilePathItem
+func (fpi *FilePathItem) Write(b []byte) (n int, err error) {
+ fpi.Len = b[2]
+ fpi.Name = b[fileItemMinLen : fpi.Len+fileItemMinLen]
+
+ return int(fpi.Len) + fileItemMinLen, nil
+}
+