public T Remove(int index)
        {
            var request = ListRemoveWithIndexCodec.EncodeRequest(GetName(), index);
            var result  = Invoke(request, m => ListRemoveWithIndexCodec.DecodeResponse(m).response);

            return(ToObject <T>(result));
        }
        /// <inheritdoc />
        public async Task <T> RemoveAsync(int index)
        {
            var requestMessage  = ListRemoveWithIndexCodec.EncodeRequest(Name, index);
            var responseMessage = await Cluster.Messaging.SendToPartitionOwnerAsync(requestMessage, PartitionId).CfAwait();

            var response = ListRemoveWithIndexCodec.DecodeResponse(responseMessage).Response;

            return(ToObject <T>(response));
        }