code: func TransducerGet(t Transducer, k []byte) (bool, uint64) {
  	var total uint64
  	i := 0
  	curr := t.Start()
  	for t.CanMatch(curr) && i < len(k) {
  		var transVal uint64
  		curr, transVal = t.AcceptWithVal(curr, k[i])
  		if curr == noneAddr {
  			break
  		}
  		total += transVal
  		i++
  	}
  	if i != len(k) {
  		return false, total
  	}
  	match, finalVal := t.IsMatchWithVal(curr)
  	return match, total + finalVal
  }
docs: // TransducerGet implements an generic Get() method which works
  // on any implementation of Transducer
  // The caller MUST check the boolean return value for a match.
  // Zero is a valid value regardless of match status,
  // and if it is NOT a match, the value collected so far is returned.