code: func addBytesParts(ctx context.Context, bs blobserver.StatReceiver, dst *[]BytesPart, spans []span, parent *uploadBytesFuture) {
  	for _, sp := range spans {
  		if len(sp.children) == 1 && sp.children[0].isSingleBlob() {
  			// Remove an occasional useless indirection of
  			// what would become a bytes schema blob
  			// pointing to a single blobref.  Just promote
  			// the blobref child instead.
  			child := sp.children[0]
  			*dst = append(*dst, BytesPart{
  				BlobRef: child.br,
  				Size:    uint64(child.size()),
  			})
  			sp.children = nil
  		}
  		if len(sp.children) > 0 {
  			childrenSize := int64(0)
  			for _, cs := range sp.children {
  				childrenSize += cs.size()
  			}
  			future := uploadBytes(ctx, bs, newBytes(), childrenSize, sp.children)
  			parent.children = append(parent.children, future)
  			*dst = append(*dst, BytesPart{
  				BytesRef: future.BlobRef(),
  				Size:     uint64(childrenSize),
  			})
  		}
  		if sp.from == sp.to {
  			panic("Shouldn't happen. " + fmt.Sprintf("weird span with same from & to: %#v", sp))
  		}
  		*dst = append(*dst, BytesPart{
  			BlobRef: sp.br,
  			Size:    uint64(sp.to - sp.from),
  		})
  	}
  }
docs: // addBytesParts uploads the provided spans to bs, appending elements to *dst.