chore: initial commit

This commit is contained in:
Stevan Freeborn
2026-03-30 21:29:45 -05:00
commit f39c9d2bd5
227 changed files with 7881 additions and 0 deletions
@@ -0,0 +1,54 @@
using System.Globalization;
namespace StevanFreeborn.Options.Tests;
public class OptionAsyncExtensionsTests
{
[Test]
public async Task MapAsync_WhenSome_ItShouldTransformValue()
{
var option = Option.Some(5);
var mapped = await option.MapAsync(x => Task.FromResult(x.ToString(CultureInfo.InvariantCulture)));
await Assert.That(mapped.IsSome).IsTrue();
await Assert.That(mapped.Value).IsEqualTo("5");
}
[Test]
public async Task BindAsync_WhenSome_ItShouldChainToBinderResult()
{
var option = Option.Some(5);
var bound = await option.BindAsync(x => Task.FromResult(Option.Some(x.ToString(CultureInfo.InvariantCulture))));
await Assert.That(bound.IsSome).IsTrue();
await Assert.That(bound.Value).IsEqualTo("5");
}
[Test]
public async Task MatchAsync_WhenSome_ItShouldInvokeOnSome()
{
var option = Option.Some("test");
var result = await option.MatchAsync(v => Task.FromResult(v.Length), () => Task.FromResult(0));
await Assert.That(result).IsEqualTo(4);
}
[Test]
public async Task WhereAsync_WhenPredicateMatches_ItShouldReturnSameOption()
{
var option = Option.Some(10);
var filtered = await option.WhereAsync(x => Task.FromResult(x > 5));
await Assert.That(filtered).IsEqualTo(option);
}
[Test]
public async Task OrElseAsync_WhenNone_ItShouldReturnFallbackOption()
{
var option = Option.None<string>();
var result = await option.OrElseAsync(() => Task.FromResult(Option.Some("fallback")));
await Assert.That(result.IsSome).IsTrue();
await Assert.That(result.Value).IsEqualTo("fallback");
}
}
@@ -0,0 +1,193 @@
using System.Globalization;
namespace StevanFreeborn.Options.Tests;
public class OptionTests
{
[Test]
public async Task Some_WhenCalledWithValue_ItShouldReturnSomeOption()
{
var option = Option.Some("test");
await Assert.That(option.IsSome).IsTrue();
await Assert.That(option.IsNone).IsFalse();
await Assert.That(option.Value).IsEqualTo("test");
}
[Test]
public async Task None_WhenCalled_ItShouldReturnNoneOption()
{
var option = Option.None<string>();
await Assert.That(option.IsNone).IsTrue();
await Assert.That(option.IsSome).IsFalse();
}
[Test]
public async Task Some_WhenCalledWithNull_ItShouldThrowArgumentNullException()
{
Assert.Throws<ArgumentNullException>(() => _ = Option.Some<string>(null!));
}
[Test]
public async Task From_WhenValueNotNull_ItShouldReturnSomeOption()
{
var option = Option.From("test");
await Assert.That(option.IsSome).IsTrue();
await Assert.That(option.Value).IsEqualTo("test");
}
[Test]
public async Task From_WhenValueNull_ItShouldReturnNoneOption()
{
var option = Option.From<string>(null);
await Assert.That(option.IsNone).IsTrue();
}
[Test]
public async Task Value_WhenOptionIsNone_ItShouldThrowInvalidOperationException()
{
var option = Option.None<string>();
Assert.Throws<InvalidOperationException>(() => _ = option.Value);
}
[Test]
public async Task ImplicitConversion_FromValue_ItShouldReturnSomeOption()
{
Option<string> option = "test";
await Assert.That(option.IsSome).IsTrue();
await Assert.That(option.Value).IsEqualTo("test");
}
[Test]
public async Task ImplicitConversion_FromNull_ItShouldReturnNoneOption()
{
Option<string> option = null!;
await Assert.That(option.IsNone).IsTrue();
}
[Test]
public async Task Deconstruct_WhenSome_ItShouldReturnTrueAndValue()
{
var option = Option.Some("test");
var (isSome, value) = option;
await Assert.That(isSome).IsTrue();
await Assert.That(value).IsEqualTo("test");
}
[Test]
public async Task Deconstruct_WhenNone_ItShouldReturnFalseAndDefault()
{
var option = Option.None<string>();
var (isSome, value) = option;
await Assert.That(isSome).IsFalse();
await Assert.That(value).IsNull();
}
[Test]
public async Task Map_WhenSome_ItShouldTransformValue()
{
var option = Option.Some(5);
var mapped = option.Map(x => x.ToString(CultureInfo.InvariantCulture));
await Assert.That(mapped.IsSome).IsTrue();
await Assert.That(mapped.Value).IsEqualTo("5");
}
[Test]
public async Task Map_WhenNone_ItShouldReturnNone()
{
var option = Option.None<int>();
var mapped = option.Map(x => x.ToString(CultureInfo.InvariantCulture));
await Assert.That(mapped.IsNone).IsTrue();
}
[Test]
public async Task Bind_WhenSome_ItShouldChainToBinderResult()
{
var option = Option.Some(5);
var bound = option.Bind(x => Option.Some(x.ToString(CultureInfo.InvariantCulture)));
await Assert.That(bound.IsSome).IsTrue();
await Assert.That(bound.Value).IsEqualTo("5");
}
[Test]
public async Task Match_WhenSome_ItShouldReturnOnSomeValue()
{
var option = Option.Some("test");
var result = option.Match(v => v.Length, () => 0);
await Assert.That(result).IsEqualTo(4);
}
[Test]
public async Task Match_WhenNone_ItShouldReturnOnNoneValue()
{
var option = Option.None<string>();
var result = option.Match(v => v.Length, () => -1);
await Assert.That(result).IsEqualTo(-1);
}
[Test]
public async Task Where_WhenPredicateMatches_ItShouldReturnSameOption()
{
var option = Option.Some(10);
var filtered = option.Where(x => x > 5);
await Assert.That(filtered).IsEqualTo(option);
}
[Test]
public async Task Where_WhenPredicateDoesNotMatch_ItShouldReturnNone()
{
var option = Option.Some(3);
var filtered = option.Where(x => x > 5);
await Assert.That(filtered.IsNone).IsTrue();
}
[Test]
public async Task GetValueOrDefault_WhenSome_ItShouldReturnValue()
{
var option = Option.Some("test");
await Assert.That(option.GetValueOrDefault("default")).IsEqualTo("test");
}
[Test]
public async Task GetValueOrDefault_WhenNone_ItShouldReturnDefault()
{
var option = Option.None<string>();
await Assert.That(option.GetValueOrDefault("default")).IsEqualTo("default");
}
[Test]
public async Task OrElse_WhenSome_ItShouldReturnSameOption()
{
var option = Option.Some("test");
var result = option.OrElse(() => Option.Some("fallback"));
await Assert.That(result).IsEqualTo(option);
}
[Test]
public async Task OrElse_WhenNone_ItShouldReturnFallbackOption()
{
var option = Option.None<string>();
var result = option.OrElse(() => Option.Some("fallback"));
await Assert.That(result.IsSome).IsTrue();
await Assert.That(result.Value).IsEqualTo("fallback");
}
}
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>StevanFreeborn.Options.Tests</RootNamespace>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="TUnit" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\StevanFreeborn.Options\StevanFreeborn.Options.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,14 @@
2026-03-30T19:37:49.1968784+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Version: 2.1.0+26fb0d3e539b7900114443db5edf1e0c4e9d4b82
2026-03-30T19:37:49.2082545+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Logging mode: asynchronous
2026-03-30T19:37:49.2087577+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Logging level: Information
2026-03-30T19:37:49.2087607+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION CreateBuilderAsync entry time: 19:37:49.183
2026-03-30T19:37:49.2088184+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION PID: 49068
2026-03-30T19:37:49.2088369+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Runtime information: win-x64 - .NET 10.0.5
2026-03-30T19:37:49.2088489+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Runtime location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.5\System.Private.CoreLib.dll
2026-03-30T19:37:49.2088539+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION IsDynamicCodeSupported: True
2026-03-30T19:37:49.2089049+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Test module: C:\Users\sfree\Repositories\stevanfreeborn.options\tests\StevanFreeborn.Options.Tests\bin\Debug\net10.0\StevanFreeborn.Options.Tests.dll
2026-03-30T19:37:49.2089786+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION Command line arguments: '--server --diagnostic --diagnostic-verbosity Information --diagnostic-output-directory C:\Users\sfree\Repositories\stevanfreeborn.options\tests\StevanFreeborn.Options.Tests\bin\Debug\net10.0\Log --client-port 51312'
2026-03-30T19:37:49.2094607+00:00 Microsoft.Testing.Platform.Builder.TestApplication INFORMATION TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT: ''
2026-03-30T19:37:49.3949618+00:00 Microsoft.Testing.Platform.Hosts.TestHostBuilder INFORMATION Setting RegisterEnvironmentVariablesConfigurationSource: 'True'
2026-03-30T19:37:49.4030885+00:00 Microsoft.Testing.Platform.Hosts.TestHostBuilder INFORMATION Setting PlatformExitProcessOnUnhandledException: 'False', config file: False environment variable:
2026-03-30T19:37:49.5515838+00:00 Microsoft.Testing.Platform.Requests.TestHostTestFrameworkInvoker INFORMATION Test framework UID: 'TUnitExtension' Version: '1.23.7.0' DisplayName: 'TUnit' Description: 'TUnit Framework for Microsoft Testing Platform'
@@ -0,0 +1,748 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"StevanFreeborn.Options.Tests/1.0.0": {
"dependencies": {
"StevanFreeborn.Options": "0.0.0",
"TUnit": "1.23.7"
},
"runtime": {
"StevanFreeborn.Options.Tests.dll": {}
}
},
"EnumerableAsyncProcessor/3.8.4": {
"runtime": {
"lib/net9.0/EnumerableAsyncProcessor.dll": {
"assemblyVersion": "3.8.4.0",
"fileVersion": "3.8.4.0"
}
}
},
"Microsoft.ApplicationInsights/2.23.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.ApplicationInsights.dll": {
"assemblyVersion": "2.23.0.29",
"fileVersion": "2.23.0.29"
}
}
},
"Microsoft.DiaSymReader/2.2.3": {
"runtime": {
"lib/net10.0/Microsoft.DiaSymReader.dll": {
"assemblyVersion": "2.2.3.0",
"fileVersion": "2.200.326.7603"
}
}
},
"Microsoft.Extensions.DependencyModel/8.0.2": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyModel.dll": {
"assemblyVersion": "8.0.0.2",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Testing.Extensions.CodeCoverage/18.5.2": {
"dependencies": {
"Microsoft.DiaSymReader": "2.2.3",
"Microsoft.Extensions.DependencyModel": "8.0.2",
"Microsoft.Testing.Platform": "2.1.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeCoverage.Core.dll": {
"assemblyVersion": "18.5.2.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Microsoft.CodeCoverage.Instrumentation.Core.dll": {
"assemblyVersion": "18.5.2.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Microsoft.CodeCoverage.Instrumentation.dll": {
"assemblyVersion": "18.5.2.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Microsoft.CodeCoverage.Interprocess.dll": {
"assemblyVersion": "18.5.2.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Microsoft.Testing.Extensions.CodeCoverage.dll": {
"assemblyVersion": "18.5.2.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "18.500.226.15207"
},
"lib/net8.0/Mono.Cecil.Mdb.dll": {
"assemblyVersion": "0.11.5.0",
"fileVersion": "0.11.5.0"
},
"lib/net8.0/Mono.Cecil.Pdb.dll": {
"assemblyVersion": "0.11.5.0",
"fileVersion": "0.11.5.0"
},
"lib/net8.0/Mono.Cecil.Rocks.dll": {
"assemblyVersion": "0.11.5.0",
"fileVersion": "0.11.5.0"
},
"lib/net8.0/Mono.Cecil.dll": {
"assemblyVersion": "0.11.5.0",
"fileVersion": "0.11.5.0"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "fr"
},
"lib/net8.0/hu/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "hu"
},
"lib/net8.0/it/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "ko"
},
"lib/net8.0/nl/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "nl"
},
"lib/net8.0/pl/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/pt-PT/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "pt-PT"
},
"lib/net8.0/ru/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "ru"
},
"lib/net8.0/sv/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "sv"
},
"lib/net8.0/tr/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.Testing.Extensions.CodeCoverage.resources.dll": {
"locale": "zh-Hant"
}
},
"runtimeTargets": {
"runtimes/linux-musl-x64/native/Cov_x64.config": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libCoverageInstrumentationMethod.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libInstrumentationEngine.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/Cov_x64.config": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libCoverageInstrumentationMethod.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libInstrumentationEngine.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/Cov_x64.config": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libCoverageInstrumentationMethod.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libInstrumentationEngine.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/CodeCoverageMessages.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-arm64/native/Cov_arm64.config": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/Cov_x64.config": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/Cov_x86.config": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/MicrosoftInstrumentationEngine_arm64.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-arm64/native/MicrosoftInstrumentationEngine_x64.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-arm64/native/MicrosoftInstrumentationEngine_x86.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-arm64/native/covrun32.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-arm64/native/covrun64.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-arm64/native/covrunarm64.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-arm64/native/msdia140.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "14.50.35719.0"
},
"runtimes/win-x64/native/CodeCoverageMessages.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x64/native/Cov_arm64.config": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/Cov_x64.config": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/Cov_x86.config": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/MicrosoftInstrumentationEngine_arm64.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x64/native/MicrosoftInstrumentationEngine_x64.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x64/native/MicrosoftInstrumentationEngine_x86.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x64/native/covrun32.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x64/native/covrun64.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x64/native/covrunarm64.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x64/native/msdia140.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "14.50.35719.0"
},
"runtimes/win-x86/native/CodeCoverageMessages.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x86/native/Cov_arm64.config": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/Cov_x64.config": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/Cov_x86.config": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/MicrosoftInstrumentationEngine_arm64.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x86/native/MicrosoftInstrumentationEngine_x64.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x86/native/MicrosoftInstrumentationEngine_x86.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "15.1.0.49995"
},
"runtimes/win-x86/native/covrun32.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x86/native/covrun64.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x86/native/covrunarm64.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "18.2.26152.59847"
},
"runtimes/win-x86/native/msdia140.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "14.50.35719.0"
}
}
},
"Microsoft.Testing.Extensions.Telemetry/2.1.0": {
"dependencies": {
"Microsoft.ApplicationInsights": "2.23.0",
"Microsoft.Testing.Platform": "2.1.0"
},
"runtime": {
"lib/net9.0/Microsoft.Testing.Extensions.Telemetry.dll": {
"assemblyVersion": "2.1.0.0",
"fileVersion": "2.100.26.10311"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Testing.Extensions.TrxReport/2.1.0": {
"dependencies": {
"Microsoft.Testing.Extensions.TrxReport.Abstractions": "2.1.0",
"Microsoft.Testing.Platform": "2.1.0"
},
"runtime": {
"lib/net9.0/Microsoft.Testing.Extensions.TrxReport.dll": {
"assemblyVersion": "2.1.0.0",
"fileVersion": "2.100.26.10311"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.Testing.Extensions.TrxReport.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Testing.Extensions.TrxReport.Abstractions/2.1.0": {
"dependencies": {
"Microsoft.Testing.Platform": "2.1.0"
},
"runtime": {
"lib/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll": {
"assemblyVersion": "2.1.0.0",
"fileVersion": "2.100.26.10311"
}
}
},
"Microsoft.Testing.Platform/2.1.0": {
"runtime": {
"lib/net9.0/Microsoft.Testing.Platform.dll": {
"assemblyVersion": "2.1.0.0",
"fileVersion": "2.100.26.10311"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.Testing.Platform.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.Testing.Platform.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.Testing.Platform.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.Testing.Platform.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.Testing.Platform.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.Testing.Platform.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.Testing.Platform.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.Testing.Platform.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.Testing.Platform.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.Testing.Platform.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Testing.Platform.MSBuild/2.1.0": {
"dependencies": {
"Microsoft.Testing.Platform": "2.1.0"
},
"runtime": {
"lib/net9.0/Microsoft.Testing.Extensions.MSBuild.dll": {
"assemblyVersion": "2.1.0.0",
"fileVersion": "2.100.26.10311"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll": {
"locale": "zh-Hant"
}
}
},
"TUnit/1.23.7": {
"dependencies": {
"Microsoft.Testing.Extensions.CodeCoverage": "18.5.2",
"Microsoft.Testing.Extensions.Telemetry": "2.1.0",
"Microsoft.Testing.Extensions.TrxReport": "2.1.0",
"TUnit.Assertions": "1.23.7",
"TUnit.Engine": "1.23.7"
},
"runtime": {
"lib/net10.0/TUnit.dll": {
"assemblyVersion": "1.23.7.0",
"fileVersion": "1.23.7.0"
}
}
},
"TUnit.Assertions/1.23.7": {
"runtime": {
"lib/net10.0/TUnit.Assertions.dll": {
"assemblyVersion": "1.23.7.0",
"fileVersion": "1.23.7.0"
}
}
},
"TUnit.Core/1.23.7": {
"runtime": {
"lib/net10.0/TUnit.Core.dll": {
"assemblyVersion": "1.23.7.0",
"fileVersion": "1.23.7.0"
}
}
},
"TUnit.Engine/1.23.7": {
"dependencies": {
"EnumerableAsyncProcessor": "3.8.4",
"Microsoft.Testing.Extensions.TrxReport.Abstractions": "2.1.0",
"Microsoft.Testing.Platform": "2.1.0",
"Microsoft.Testing.Platform.MSBuild": "2.1.0",
"TUnit.Core": "1.23.7"
},
"runtime": {
"lib/net10.0/TUnit.Engine.dll": {
"assemblyVersion": "1.23.7.0",
"fileVersion": "1.23.7.0"
}
}
},
"StevanFreeborn.Options/0.0.0": {
"runtime": {
"StevanFreeborn.Options.dll": {
"assemblyVersion": "0.0.0.0",
"fileVersion": "0.0.0.0"
}
}
}
}
},
"libraries": {
"StevanFreeborn.Options.Tests/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"EnumerableAsyncProcessor/3.8.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KlbpupRCz3Kf+P7gsiDvFXJ980i/9lfihMZFmmxIk0Gf6mopEjy74OTJZmdaKDQpE29eQDBnMZB5khyW3eugrg==",
"path": "enumerableasyncprocessor/3.8.4",
"hashPath": "enumerableasyncprocessor.3.8.4.nupkg.sha512"
},
"Microsoft.ApplicationInsights/2.23.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nWArUZTdU7iqZLycLKWe0TDms48KKGE6pONH2terYNa8REXiqixrMOkf1sk5DHGMaUTqONU2YkS4SAXBhLStgw==",
"path": "microsoft.applicationinsights/2.23.0",
"hashPath": "microsoft.applicationinsights.2.23.0.nupkg.sha512"
},
"Microsoft.DiaSymReader/2.2.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bhwzJfzyiJM0nXJyNB7Y9OfsEXyxLdDBHG99soIp5JjnPydwkOaBdRCtRtWgQh3noSLi2cSIZ/wpbHNNE9knxQ==",
"path": "microsoft.diasymreader/2.2.3",
"hashPath": "microsoft.diasymreader.2.2.3.nupkg.sha512"
},
"Microsoft.Extensions.DependencyModel/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==",
"path": "microsoft.extensions.dependencymodel/8.0.2",
"hashPath": "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512"
},
"Microsoft.Testing.Extensions.CodeCoverage/18.5.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UNcGLx9pVtlXF8MPDR8KDp+/OKKNIJjpzwRyZSt609TSGvaD8mtuQMb5GKZvhMucPp0a5Juvn3kxXDceQZWmAg==",
"path": "microsoft.testing.extensions.codecoverage/18.5.2",
"hashPath": "microsoft.testing.extensions.codecoverage.18.5.2.nupkg.sha512"
},
"Microsoft.Testing.Extensions.Telemetry/2.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5TwgTx2u7k9Al/xbZ18QXq4Hdy2xewkVTI6K3sk+jY2ykqUkIKNuj7rFu3GOV5KnEUkevhw6eZcyZs77STHJIA==",
"path": "microsoft.testing.extensions.telemetry/2.1.0",
"hashPath": "microsoft.testing.extensions.telemetry.2.1.0.nupkg.sha512"
},
"Microsoft.Testing.Extensions.TrxReport/2.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cXmP225WcMLLOSrW8xekaNhfzdBwXX3cbXbE5qSzmLbK0KZe3z8rAObKj70FWiPPPzm2W22x0ZW93gsmAfK6Mg==",
"path": "microsoft.testing.extensions.trxreport/2.1.0",
"hashPath": "microsoft.testing.extensions.trxreport.2.1.0.nupkg.sha512"
},
"Microsoft.Testing.Extensions.TrxReport.Abstractions/2.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-D8xmIJYQFJ6D49Rx5/vPrkZZxb338Jkew+eSqZLBfBiWKw4QZKy3i1BOXiLfz0lOmaNErwDz/YWRojCdNl+B9Q==",
"path": "microsoft.testing.extensions.trxreport.abstractions/2.1.0",
"hashPath": "microsoft.testing.extensions.trxreport.abstractions.2.1.0.nupkg.sha512"
},
"Microsoft.Testing.Platform/2.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aHkjNTGIA+Zbdw6RJgSFrbDrCjO0CgqpElqYcvkRSeUhBv2bKarnvU3ep786U7UqrPlArT/B7VmImRibJD0Zrg==",
"path": "microsoft.testing.platform/2.1.0",
"hashPath": "microsoft.testing.platform.2.1.0.nupkg.sha512"
},
"Microsoft.Testing.Platform.MSBuild/2.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UpfPebXQtHGrWz21+YLHmJSm+5zsuPE9U9pfdCtoB+67g75fDmWlNgpkH2ZmdVhSwkjNIed9Icg8Iu63z2ei5Q==",
"path": "microsoft.testing.platform.msbuild/2.1.0",
"hashPath": "microsoft.testing.platform.msbuild.2.1.0.nupkg.sha512"
},
"TUnit/1.23.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PVEu/QwlNe2413Qpfru4B7wixLTKGcjqxISKXqUCGAeEKQ84NHMvNVVnm5JKbpMsam2Sf79S6S2HaAIaXy7NYA==",
"path": "tunit/1.23.7",
"hashPath": "tunit.1.23.7.nupkg.sha512"
},
"TUnit.Assertions/1.23.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eWCF4SVUxu4vEfJj8wZuE92ONv5lZdL/E3b3Y/axpM55BG0X4dRpvf0Hm80DNB9uJoBjdq9u/QMom2G1wsENgQ==",
"path": "tunit.assertions/1.23.7",
"hashPath": "tunit.assertions.1.23.7.nupkg.sha512"
},
"TUnit.Core/1.23.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-035xcZ8Lf9y7FI93uvKTWqlwKxY2FBPZ00k0awur38iStXP9Vw3C+Hfz5hDHHryU+H8r0FiYYkqzGDannZ2G/g==",
"path": "tunit.core/1.23.7",
"hashPath": "tunit.core.1.23.7.nupkg.sha512"
},
"TUnit.Engine/1.23.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yek0/Lg0jncyu5mHfLRZyBFNVEbWIofpKcWP5VpscY46IzOeqqgPSURhkg3t52zEbCEPyPOmSZrcDTK2undk7g==",
"path": "tunit.engine/1.23.7",
"hashPath": "tunit.engine.1.23.7.nupkg.sha512"
},
"StevanFreeborn.Options/0.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
@@ -0,0 +1,205 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>StevanFreeborn.Options</name>
</assembly>
<members>
<member name="T:StevanFreeborn.Options.Option">
<summary>
Provides factory methods for creating <see cref="T:StevanFreeborn.Options.Option`1"/>.
</summary>
</member>
<member name="M:StevanFreeborn.Options.Option.Some``1(``0)">
<summary>
Creates an option with the specified value.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<param name="value">The value.</param>
<returns>An <see cref="T:StevanFreeborn.Options.Option`1"/> with the specified value.</returns>
</member>
<member name="M:StevanFreeborn.Options.Option.None``1">
<summary>
Creates an empty option.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<returns>An empty <see cref="T:StevanFreeborn.Options.Option`1"/>.</returns>
</member>
<member name="M:StevanFreeborn.Options.Option.From``1(``0)">
<summary>
Creates an option from the specified value, returning None if the value is null.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<param name="value">The value.</param>
<returns>An <see cref="T:StevanFreeborn.Options.Option`1"/> with the value if not null, otherwise None.</returns>
</member>
<member name="M:StevanFreeborn.Options.Option.FromT``1(``0)">
<summary>
Converts a value to an <see cref="T:StevanFreeborn.Options.Option`1"/>.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<param name="value">The value.</param>
<returns>An <see cref="T:StevanFreeborn.Options.Option`1"/>.</returns>
</member>
<member name="T:StevanFreeborn.Options.Option`1">
<summary>
Represents an optional value that may or may not be present.
</summary>
<typeparam name="T">The type of the value.</typeparam>
</member>
<member name="P:StevanFreeborn.Options.Option`1.IsSome">
<summary>
Gets a value indicating whether the option has a value.
</summary>
</member>
<member name="P:StevanFreeborn.Options.Option`1.IsNone">
<summary>
Gets a value indicating whether the option is empty.
</summary>
</member>
<member name="P:StevanFreeborn.Options.Option`1.Value">
<summary>
Gets the value of the option.
</summary>
<exception cref="T:System.InvalidOperationException">Thrown when accessing Value on a None option.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.op_Implicit(`0)~StevanFreeborn.Options.Option{`0}">
<summary>
Implicitly converts a value to an <see cref="T:StevanFreeborn.Options.Option`1"/>.
</summary>
<param name="value">The value to convert.</param>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Deconstruct(System.Boolean@,`0@)">
<summary>
Deconstructs the option into its components.
</summary>
<param name="isSome">Indicates whether the option has a value.</param>
<param name="value">The value of the option.</param>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Map``1(System.Func{`0,``0})">
<summary>
Maps the value to a new type if the option has a value.
</summary>
<typeparam name="TNew">The new type.</typeparam>
<param name="mapper">The function to map the value.</param>
<returns>A new <see cref="T:StevanFreeborn.Options.Option`1"/> with the mapped value if Some, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when mapper is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Bind``1(System.Func{`0,StevanFreeborn.Options.Option{``0}})">
<summary>
Binds to a new option if the current option has a value.
</summary>
<typeparam name="TNew">The new option type.</typeparam>
<param name="binder">The function to bind to on Some.</param>
<returns>The result of the binder function if Some, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when binder is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Match``1(System.Func{`0,``0},System.Func{``0})">
<summary>
Matches the option and returns a value based on whether it has a value.
</summary>
<typeparam name="TResult">The type of the result.</typeparam>
<param name="onSome">The function to execute on Some.</param>
<param name="onNone">The function to execute on None.</param>
<returns>The result of the appropriate function.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when onSome or onNone is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Match(System.Action{`0},System.Action)">
<summary>
Matches the option and executes the appropriate action.
</summary>
<param name="onSome">The action to execute on Some.</param>
<param name="onNone">The action to execute on None.</param>
<exception cref="T:System.ArgumentNullException">Thrown when onSome or onNone is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.Where(System.Func{`0,System.Boolean})">
<summary>
Filters the option based on the specified predicate.
</summary>
<param name="predicate">The predicate to filter with.</param>
<returns>The current option if Some and the predicate is met, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when predicate is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.GetValueOrDefault(`0)">
<summary>
Gets the value of the option if Some, otherwise the specified default value.
</summary>
<param name="defaultValue">The default value.</param>
<returns>The value if Some, otherwise the default value.</returns>
</member>
<member name="M:StevanFreeborn.Options.Option`1.GetValueOrDefault(System.Func{`0})">
<summary>
Gets the value of the option if Some, otherwise the result of the specified factory function.
</summary>
<param name="factory">The factory function to provide the default value.</param>
<returns>The value if Some, otherwise the result of the factory function.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when factory is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.Option`1.OrElse(System.Func{StevanFreeborn.Options.Option{`0}})">
<summary>
Returns the current option if Some, otherwise the result of the specified factory function.
</summary>
<param name="factory">The factory function to provide the fallback option.</param>
<returns>The current option if Some, otherwise the result of the factory function.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when factory is null.</exception>
</member>
<member name="T:StevanFreeborn.Options.OptionAsyncExtensions">
<summary>
Provides async extension methods for <see cref="T:StevanFreeborn.Options.Option`1"/>.
</summary>
</member>
<member name="M:StevanFreeborn.Options.OptionAsyncExtensions.MapAsync``2(StevanFreeborn.Options.Option{``0},System.Func{``0,System.Threading.Tasks.Task{``1}})">
<summary>
Maps the value to a new type asynchronously if the option has a value.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<typeparam name="TNew">The new type.</typeparam>
<param name="option">The option.</param>
<param name="mapper">The async function to map the value.</param>
<returns>A task containing a new <see cref="T:StevanFreeborn.Options.Option`1"/> with the mapped value if Some, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when option or mapper is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.OptionAsyncExtensions.BindAsync``2(StevanFreeborn.Options.Option{``0},System.Func{``0,System.Threading.Tasks.Task{StevanFreeborn.Options.Option{``1}}})">
<summary>
Binds to a new async result if the current option has a value.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<typeparam name="TNew">The new result type.</typeparam>
<param name="option">The option.</param>
<param name="binder">The async function to bind to on Some.</param>
<returns>A task containing the result of the binder function if Some, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when option or binder is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.OptionAsyncExtensions.MatchAsync``2(StevanFreeborn.Options.Option{``0},System.Func{``0,System.Threading.Tasks.Task{``1}},System.Func{System.Threading.Tasks.Task{``1}})">
<summary>
Matches the option asynchronously and returns a value based on whether it has a value.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<typeparam name="TResult">The type of the result.</typeparam>
<param name="option">The option.</param>
<param name="onSome">The async function to execute on Some.</param>
<param name="onNone">The async function to execute on None.</param>
<returns>A task containing the result of the appropriate function.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when option, onSome, or onNone is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.OptionAsyncExtensions.WhereAsync``1(StevanFreeborn.Options.Option{``0},System.Func{``0,System.Threading.Tasks.Task{System.Boolean}})">
<summary>
Filters the option asynchronously based on the specified predicate.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<param name="option">The option.</param>
<param name="predicate">The async predicate to filter with.</param>
<returns>A task containing the current option if Some and the predicate is met, otherwise None.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when option or predicate is null.</exception>
</member>
<member name="M:StevanFreeborn.Options.OptionAsyncExtensions.OrElseAsync``1(StevanFreeborn.Options.Option{``0},System.Func{System.Threading.Tasks.Task{StevanFreeborn.Options.Option{``0}}})">
<summary>
Returns the current option if Some, otherwise the result of the specified async factory function.
</summary>
<typeparam name="T">The type of the value.</typeparam>
<param name="option">The option.</param>
<param name="factory">The async factory function to provide the fallback option.</param>
<returns>A task containing the current option if Some, otherwise the result of the factory function.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when option or factory is null.</exception>
</member>
</members>
</doc>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<InstrumentationEngineConfiguration>
<InstrumentationMethod>
<Name>Code Coverage Instrumentation Method</Name>
<Description>Instrumentation method to support Microsoft Code Coverage</Description>
<Module>libCoverageInstrumentationMethod.so</Module>
<ClassGuid>{F02C3E96-F6FD-4552-9544-9F06BE6E5A0B}</ClassGuid>
<Priority>11</Priority>
</InstrumentationMethod>
</InstrumentationEngineConfiguration>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<InstrumentationEngineConfiguration>
<InstrumentationMethod>
<Name>Code Coverage Instrumentation Method</Name>
<Description>Instrumentation method to support Microsoft Code Coverage</Description>
<Module>libCoverageInstrumentationMethod.so</Module>
<ClassGuid>{F02C3E96-F6FD-4552-9544-9F06BE6E5A0B}</ClassGuid>
<Priority>11</Priority>
</InstrumentationMethod>
</InstrumentationEngineConfiguration>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<InstrumentationEngineConfiguration>
<InstrumentationMethod>
<Name>Code Coverage Instrumentation Method</Name>
<Description>Instrumentation method to support Microsoft Code Coverage</Description>
<Module>libCoverageInstrumentationMethod.dylib</Module>
<ClassGuid>{F02C3E96-F6FD-4552-9544-9F06BE6E5A0B}</ClassGuid>
<Priority>11</Priority>
</InstrumentationMethod>
</InstrumentationEngineConfiguration>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<InstrumentationEngineConfiguration>
<InstrumentationMethod>
<Name>Vanguard Instrumentation Method</Name>
<Description>Instrumentation method to support Code Coverage</Description>
<Module>covrunarm64.dll</Module>
<ClassGuid>{2A1F2A34-8192-44AC-A9D8-4FCC03DCBAA8}</ClassGuid>
<Priority>99</Priority>
</InstrumentationMethod>
</InstrumentationEngineConfiguration>

Some files were not shown because too many files have changed in this diff Show More