using System.Diagnostics.CodeAnalysis; namespace Lagrange.OneBot.Utility.Fallbacks; public class FallbackAsync { private readonly List>> _executors = []; internal static FallbackAsync Create() { return new(); } public FallbackAsync Add(Func> executor) { _executors.Add(executor); return this; } public async Task ExecuteAsync(CancellationToken token = default) { foreach (var executor in _executors) { if (await executor(token)) return true; } return false; } }