public AsyncSubject <Unit> InvalidateTypes(IEnumerable <string> types)
        {
            var ret = OperationQueueItem.CreateInvalidate(OperationType.BulkInvalidateByTypeSqliteOperation, types);

            _operationQueue.Add(ret);

            return(ret.CompletionAsUnit);
        }
        static OperationQueueItem GroupUnrelatedDeletes(IEnumerable <OperationQueueItem> unrelatedDeletes)
        {
            var subj = new AsyncSubject <Unit>();

            if (unrelatedDeletes.Count() == 1)
            {
                return(unrelatedDeletes.First());
            }

            var elements = unrelatedDeletes.SelectMany(x =>
            {
                subj.Subscribe(x.CompletionAsUnit);
                return(x.ParametersAsKeys);
            }).ToList();

            return(OperationQueueItem.CreateInvalidate(
                       OperationType.BulkInvalidateSqliteOperation, elements, subj));
        }