func (h *Hasher) Write(b []byte) (int, error) {
	l := len(b)
	max := h.maxSize - h.size
	if l > max {
		l = max
	}
	copy(h.bmt.buffer[h.size:], b)
	secsize := 2 * h.segmentSize
	from := h.size / secsize
	h.offset = h.size % secsize
	h.size += l
	to := h.size / secsize
	if l == max {
		to--
	}
	h.pos = to
	for i := from; i < to; i++ {
		go h.processSection(i, false)
	}
	return l, nil
}
// Write calls sequentially add to the buffer to be hashed,
// with every full segment calls processSection in a go routine.
Write calls sequentially add to the buffer to be hashed,
with every full segment calls processSection in a go routine.
// Write calls sequentially add to the buffer to be hashed // with every full segment calls processSection in a go routine .
func (h *Hasher) Write(b []byte) (int, error) {
	l := len(b)
	max := h.maxSize - h.size
	if l > max {
		l = max
	}
	copy(h.bmt.buffer[h.size:], b)
	secsize := 2 * h.segmentSize
	from := h.size / secsize
	h.offset = h.size % secsize
	h.size += l
	to := h.size / secsize
	if l == max {
		to--
	}
	h.pos = to
	for i := from; i < to; i++ {
		go h.processSection(i, false)
	}
	return l, nil
}
func ( h * Hasher ) Write ( b [ ] byte ) ( int , error ) { l := len ( b ) max := h . maxSize - h . size if l > max { l = max } copy ( h . bmt . buffer [ h . size : ] , b ) secsize := 2 * h . segmentSize from := h . size / secsize h . offset = h . size % secsize h . size += l to := h . size / secsize if l == max { to -- } h . pos = to for i := from ; i < to ; i ++ { go h . processSection ( i , false ) } return l , nil }
Write calls sequentially add to the buffer to be hashed,
with every full segment calls processSection in a go routine.
Write calls sequentially add to the buffer to be hashed with every full segment calls processSection in a go routine .