code: func (ch *Channel) recvContent(f frame) error {
  	switch frame := f.(type) {
  	case *methodFrame:
  		// interrupt content and handle method
  		return ch.recvMethod(f)
  
  	case *headerFrame:
  		// drop and reset
  		return ch.transition((*Channel).recvMethod)
  
  	case *bodyFrame:
  		ch.body = append(ch.body, frame.Body...)
  
  		if uint64(len(ch.body)) >= ch.header.Size {
  			ch.message.setContent(ch.header.Properties, ch.body)
  			ch.dispatch(ch.message) // termination state
  			return ch.transition((*Channel).recvMethod)
  		}
  
  		return ch.transition((*Channel).recvContent)
  	}
  
  	panic("unexpected frame type")
  }
docs: // state after method + header and before the length
  // defined by the header has been reached