public static IEnumerable <T> Consume <T>(this IAtomicCollection <T> items) { while (items.TryConsume(out var item)) { yield return(item); } }
public static IEnumerable <T> Consume <T>(this IAtomicCollection <T> items) { items.ThrowIfNull(nameof(items)); while (items.TryConsume(out var item)) { yield return(item); } }
public static TItem AddAndGet <T, TItem>(this IAtomicCollection <T> items, TItem item) where TItem : T { items.Add(item); return(item); }
public static TItem AddAndGet <T, TItem>(this IAtomicCollection <T> items, TItem item) where TItem : T { items.ThrowIfNull(nameof(items)).Add(item); return(item); }
public static void Add <T>(this IAtomicCollection <CollectionTransaction <T> > items, T item) => items.Add(new CollectionTransaction <T>(items, item));
public CollectionTransaction(IAtomicCollection <CollectionTransaction <T> > items, T item) { _items = items.NotNull(nameof(items)); Item = item; }