original_string: public function readNextKeyValuePair( $truncatedString ) : ContainerElement {
          $keyBytes = $this->extractKeyBytes( $truncatedString );
          $remainingBytes = substr( $truncatedString, $keyBytes->getLength() );
          $data = $this->readData( $remainingBytes );
          return new ContainerElement($keyBytes, $data);
      }
code: public function readNextKeyValuePair( $truncatedString ) : ContainerElement {
          $keyBytes = $this->extractKeyBytes( $truncatedString );
          $remainingBytes = substr( $truncatedString, $keyBytes->getLength() );
          $data = $this->readData( $remainingBytes );
          return new ContainerElement($keyBytes, $data);
      }
code_tokens: public function readNextKeyValuePair ( $ truncatedString ) : ContainerElement { $ keyBytes = $ this -> extractKeyBytes ( $ truncatedString ) ; $ remainingBytes = substr ( $ truncatedString , $ keyBytes -> getLength ( ) ) ; $ data = $ this -> readData ( $ remainingBytes ) ; return new ContainerElement ( $ keyBytes , $ data ) ; }
docstring: This method receives a data string that is already truncated.
  The expectation is that the first bytes will represent the key, then a series
  of bytes will represent the value. That value will end either at the beginning of the
  next data structure or the end of the data string.
  @param type $truncatedString
docstring_tokens: This method receives a data string that is already truncated . The expectation is that the first bytes will represent the key then a series of bytes will represent the value . That value will end either at the beginning of the next data structure or the end of the data string .