aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-05-15 22:04:43 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2024-05-15 22:04:43 -0400
commit69f13e43dfdd8069459800ccc3039f45fc884814 (patch)
tree90363ca9fa7c89e635393465b62e4e8cbe5e6779 /lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs
parentc848787d4830a73e9ba93898897282be2f3752f2 (diff)
fix: #3 Defer vault loading until a secret actually needs it
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs')
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs b/lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs
index 482785c..cb907b9 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/IAsyncLazy.cs
@@ -52,6 +52,12 @@ namespace VNLib.Plugins.Extensions.Loading
/// If the operation has not completed, throws an exception.
/// </summary>
T Value { get; }
+
+ /// <summary>
+ /// Gets or allocates a task that represents the async result
+ /// </summary>
+ /// <returns>A task that represents the asynchronous lazy result that completes with the resulting value</returns>
+ Task<T> AsTask();
}
/// <summary>
@@ -141,6 +147,9 @@ namespace VNLib.Plugins.Extensions.Loading
///<inheritdoc/>
public TaskAwaiter<T> GetAwaiter() => _task.GetAwaiter();
+
+ ///<inheritdoc/>
+ public Task<T> AsTask() => _task;
}
#nullable enable