code: func (decoder IntLengthFieldBasedDecoder) Decode(in *ByteBuf) (bool, interface{}, error) {
  	readable := in.Readable()
  
  	minFrameLength := decoder.initialBytesToStrip + decoder.lengthFieldOffset + FieldLength
  	if readable < minFrameLength {
  		return false, nil, nil
  	}
  
  	length, err := in.PeekInt(decoder.initialBytesToStrip + decoder.lengthFieldOffset)
  	if err != nil {
  		return true, nil, err
  	}
  
  	if length > decoder.maxBodySize {
  		return false, nil, fmt.Errorf("too big body size %d, max is %d", length, decoder.maxBodySize)
  	}
  
  	skip := minFrameLength + decoder.lengthAdjustment
  	minFrameLength += length
  	if readable < minFrameLength {
  		return false, nil, nil
  	}
  
  	in.Skip(skip)
  	in.MarkN(length)
  	return decoder.base.Decode(in)
  }
docs: // Decode decode