public static void SafeDecrementFaultBy <TCounter, TValue>(this SuccessFaultPairCounter <TCounter, TValue> counter, TValue value)
     where TCounter : class, IDecrementableCounter <TValue>
 {
     if (counter != null && counter.Fault != null)
     {
         counter.Fault.DecrementBy(value);
     }
 }
 public static void SafeDecrementFault <TCounter>(this SuccessFaultPairCounter <TCounter> counter)
     where TCounter : class, IDecrementableCounter
 {
     if (counter != null && counter.Fault != null)
     {
         counter.Fault.Decrement();
     }
 }
 public static void SafeIncrementSuccessBy <TCounter, TValue>(this SuccessFaultPairCounter <TCounter, TValue> counter, TValue value)
     where TCounter : class, ICounter <TValue>
 {
     if (counter != null && counter.Success != null)
     {
         counter.Success.IncrementBy(value);
     }
 }
 public static void SafeIncrementSuccess <TCounter>(this SuccessFaultPairCounter <TCounter> counter)
     where TCounter : class, ICounter
 {
     if (counter != null && counter.Success != null)
     {
         counter.Success.Increment();
     }
 }