namespace Just.Railway; public static class Try { public static Result Run(Action action) { try { action(); return Result.Success(); } catch (Exception ex) { return Result.Failure(ex); } } public static async Task Run(Func action) { try { await action().ConfigureAwait(false); return Result.Success(); } catch (Exception ex) { return Result.Failure(ex); } } public static async ValueTask Run(Func action) { try { await action().ConfigureAwait(false); return Result.Success(); } catch (Exception ex) { return Result.Failure(ex); } } public static Result Run(Func func) { try { return Result.Success(func()); } catch (Exception ex) { return Result.Failure(ex); } } public static async Task> Run(Func> func) { try { return Result.Success(await func().ConfigureAwait(false)); } catch (Exception ex) { return Result.Failure(ex); } } public static async ValueTask> Run(Func> func) { try { return Result.Success(await func().ConfigureAwait(false)); } catch (Exception ex) { return Result.Failure(ex); } } public static Result Run(Func> func) { try { return func(); } catch (Exception ex) { return Result.Failure(ex); } } public static async Task> Run(Func>> func) { try { return await func().ConfigureAwait(false); } catch (Exception ex) { return Result.Failure(ex); } } public static async ValueTask> Run(Func>> func) { try { return await func().ConfigureAwait(false); } catch (Exception ex) { return Result.Failure(ex); } } }