< Summary

Information
Class: CounterpointCollective.Collections.CoalescingQueueHandleExtensions
Assembly: CounterpointCollective.CoalescingQueue
File(s): /builds/counterpointcollective/prestoprimitives/CoalescingQueue/Collections/ICoalescingQueueHandle.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 6
Coverable lines: 6
Total lines: 32
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
EnqueueIfNotCompleted(...)100%210%

File(s)

/builds/counterpointcollective/prestoprimitives/CoalescingQueue/Collections/ICoalescingQueueHandle.cs

#LineLine coverage
 1namespace CounterpointCollective.Collections
 2{
 3    public interface ICoalescingQueueHandle<TContainer, TValue> where TContainer : struct
 4    {
 5        public CoalescingQueueNode<TContainer, TValue> Enqueue();
 6        public HeapSafeCoalescingQueueNode<TContainer, TValue> EnqueueHeapSafe();
 7
 8    }
 9
 10    public static class CoalescingQueueHandleExtensions
 11    {
 12        /// <summary>
 13        /// Tries to enqueue a node on the handle, returning false if the queue is already completed.
 14        /// </summary>
 15        public static bool EnqueueIfNotCompleted<TContainer, TValue>(
 16            this ICoalescingQueueHandle<TContainer, TValue> h,
 17            out CoalescingQueueNode<TContainer, TValue> res
 18        ) where TContainer : struct
 19        {
 20            try
 21            {
 022                res = h.Enqueue();
 023                return true;
 24            }
 025            catch (InvalidOperationException)
 26            {
 027                res = default;
 028                return false;
 29            }
 030        }
 31    }
 32}