+
+func (f *FileNameWithInfo) MarshalBinary() (data []byte, err error) {
+ var buf bytes.Buffer
+ err = binary.Write(&buf, binary.LittleEndian, f.fileNameWithInfoHeader)
+ if err != nil {
+ return data, err
+ }
+
+ _, err = buf.Write(f.name)
+ if err != nil {
+ return data, err
+ }
+
+ return buf.Bytes(), err
+}
+
+func (f *FileNameWithInfo) UnmarshalBinary(data []byte) error {
+ err := binary.Read(bytes.NewReader(data), binary.BigEndian, &f.fileNameWithInfoHeader)
+ if err != nil {
+ return err
+ }
+ headerLen := binary.Size(f.fileNameWithInfoHeader)
+ f.name = data[headerLen : headerLen+f.nameLen()]
+
+ return err
+}
+