using Minio.DataModel.Result; namespace Minio.Handlers; public class DefaultRetryPolicyHandler : IRetryPolicyHandler { public DefaultRetryPolicyHandler() { } public DefaultRetryPolicyHandler(Func>, Task> retryPolicyHandler) { RetryPolicyHandler = retryPolicyHandler; } public Func>, Task> RetryPolicyHandler { get; } public virtual Task Handle(Func> executeRequestCallback) { if (executeRequestCallback is null) throw new ArgumentNullException(nameof(executeRequestCallback)); if (RetryPolicyHandler is not null) return RetryPolicyHandler.Invoke(executeRequestCallback); return executeRequestCallback.Invoke(); } }