anchor.diff:          _username = username == null ? null : UTF8BackedString(username);
   
     @override
  -  int get length {
  +  void applyToBuffer(ByteDataWriter buffer) {
       final fixedLength = 53;
       final variableLength = (_username?.utf8Length ?? 0) +
           _databaseName.utf8Length +
           _timeZone.utf8Length +
           3;
   
  -    return fixedLength + variableLength;
  -  }
  -
  -  @override
  -  void applyToBuffer(ByteDataWriter buffer) {
  -    buffer.writeInt32(length);
  +    buffer.writeInt32(fixedLength + variableLength);
       buffer.writeInt32(ClientMessage.ProtocolVersion);
   
       if (_username != null) {
  -      applyBytesToBuffer((UTF8ByteConstants.user), buffer);
  -      applyStringToBuffer(_username, buffer);
  +      buffer.write(UTF8ByteConstants.user);
  +      _applyStringToBuffer(_username, buffer);
       }
   
  -    applyBytesToBuffer(UTF8ByteConstants.database, buffer);
  -    applyStringToBuffer(_databaseName, buffer);
  -
  -    applyBytesToBuffer(UTF8ByteConstants.clientEncoding, buffer);
  -    applyBytesToBuffer(UTF8ByteConstants.utf8, buffer);
  -
  -    applyBytesToBuffer(UTF8ByteConstants.timeZone, buffer);
  -    applyStringToBuffer(_timeZone, buffer);
  +    buffer.write(UTF8ByteConstants.database);
  +    _applyStringToBuffer(_databaseName, buffer);
  +
  +    buffer.write(UTF8ByteConstants.clientEncoding);
  +    buffer.write(UTF8ByteConstants.utf8);
  +
  +    buffer.write(UTF8ByteConstants.timeZone);
  +    _applyStringToBuffer(_timeZone, buffer);
   
       buffer.writeInt8(0);
     }
  
positive.code:     buffer.writeUint32(length - 1);
  
      // Name of portal - currently unnamed portal.
      applyBytesToBuffer([0], buffer);
      // Name of prepared statement.
      applyStringToBuffer(_statementName, buffer);
  
      // OK, if we have no specified types at all, we can use 0. If we have all specified types, we can use 1. If we have a mix, we have to individually
      // call out each type.
  
negative.code:   }
  }
  
  void _applyStringToBuffer(UTF8BackedString string, ByteDataWriter buffer) {
    buffer.write(string.utf8Bytes);
    buffer.writeInt8(0);
  }
  
  class StartupMessage extends ClientMessage {
    final UTF8BackedString _username;
    final UTF8BackedString _databaseName;
  