/// <summary> /// Provides handling logic for abstract Effect awaiters. /// </summary> /// <typeparam name="TResult">The result type of the abstract effect.</typeparam> /// <param name="awaiter">The effect awaiter to be completed with a value.</param> /// <returns>A task waiting on the asynchronous handler.</returns> /// <remarks> /// Typically a pattern match against subtypes of <see cref="Effect{TResult}"/> /// that are recognized by the particular effect handler implementation. /// </remarks> public abstract ValueTask Handle <TResult>(EffectAwaiter <TResult> awaiter);
/// <summary> /// An effect handler that always throws. /// </summary> /// <exception cref="NotSupportedException" /> public override ValueTask Handle <TResult>(EffectAwaiter <TResult> awaiter) { throw new NotSupportedException("Abstract effects not supported by this handler."); }