code: func (cs *CachableSource) MarshalBinary() ([]byte, error) {
  	b := TarsumBackup{Hashes: make(map[string]string)}
  	root := cs.getRoot()
  	root.Walk(func(k []byte, v interface{}) bool {
  		b.Hashes[string(k)] = v.(*fileInfo).sum
  		return false
  	})
  	return b.Marshal()
  }
docs: // MarshalBinary marshals current cache information to a byte array