toBytes method

Uint8List toBytes()

Implementation

Uint8List toBytes() {
  final bytes = <int>[];

  for (final (protocol, value) in _components) {
    // Add protocol code as varint
    bytes.addAll(MultiAddrCodec.encodeVarint(protocol.code));

    // Add value
    final valueBytes = MultiAddrCodec.encodeValue(protocol, value);

    // Add size for variable-length values
    if (protocol.isVariableSize) {
      bytes.addAll(MultiAddrCodec.encodeVarint(valueBytes.length));
    }

    bytes.addAll(valueBytes);
  }

  return Uint8List.fromList(bytes);
}