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,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyMetadata("IsTrimmable", "True")]
[assembly: System.Reflection.AssemblyMetadata("IsAotCompatible", "True")]
[assembly: System.Reflection.AssemblyCompanyAttribute("StevanFreeborn")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyDescriptionAttribute(("A minimalistic, AOT-compatible Option type library for functional programming in " +
".NET."))]
[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("StevanFreeborn.Options")]
[assembly: System.Reflection.AssemblyTitleAttribute("StevanFreeborn.Options")]
[assembly: System.Reflection.AssemblyVersionAttribute("0.0.0.0")]
[assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://gitea.freeborn.cloud/Stevan/stevanfreeborn.options")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("StevanFreeborn.Options.Tests")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
c6fc8ac2ac149f1a7cb4f1fe2d65ab001f9b34ee7a60f175f55b4cca8fa05136
@@ -0,0 +1,23 @@
is_global = true
build_property.EnableAotAnalyzer = true
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer = true
build_property.IncludeAllContentForSelfExtract =
build_property.VerifyReferenceTrimCompatibility =
build_property.VerifyReferenceAotCompatibility = true
build_property.TargetFramework = net10.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = StevanFreeborn.Options
build_property.ProjectDir = C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =
@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
@@ -0,0 +1 @@
ebdf8080e5385d95be1bfaaed13f788a1f16d93c26b797822d289e9bba47778d
@@ -0,0 +1,13 @@
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.AssemblyInfoInputs.cache
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.AssemblyInfo.cs
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.csproj.CoreCompileInputs.cache
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.xml
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\net10.0\StevanFreeborn.Options.deps.json
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\net10.0\StevanFreeborn.Options.dll
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\net10.0\StevanFreeborn.Options.pdb
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\net10.0\StevanFreeborn.Options.xml
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.dll
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\refint\StevanFreeborn.Options.dll
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\StevanFreeborn.Options.pdb
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\net10.0\ref\StevanFreeborn.Options.dll
@@ -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,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StevanFreeborn")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyDescriptionAttribute(("A minimalistic, AOT-compatible Option type library for functional programming in " +
".NET."))]
[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("StevanFreeborn.Options")]
[assembly: System.Reflection.AssemblyTitleAttribute("StevanFreeborn.Options")]
[assembly: System.Reflection.AssemblyVersionAttribute("0.0.0.0")]
[assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://gitea.freeborn.cloud/Stevan/stevanfreeborn.options")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("StevanFreeborn.Options.Tests")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
227845e6f5a5a5a2185672ef274e4035ca9355bc7fb2552e1d3fe1a888bd2d50
@@ -0,0 +1,18 @@
is_global = true
build_property.TargetFramework = netstandard2.1
build_property.TargetFrameworkIdentifier = .NETStandard
build_property.TargetFrameworkVersion = v2.1
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = StevanFreeborn.Options
build_property.ProjectDir = C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =
@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
@@ -0,0 +1 @@
62ac793ace9ab30407364550ba8e3580470e39b4228eda9825ad061a3836bdc9
@@ -0,0 +1,11 @@
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.AssemblyInfoInputs.cache
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.AssemblyInfo.cs
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.csproj.CoreCompileInputs.cache
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.xml
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\netstandard2.1\StevanFreeborn.Options.deps.json
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\netstandard2.1\StevanFreeborn.Options.dll
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\netstandard2.1\StevanFreeborn.Options.pdb
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\bin\Debug\netstandard2.1\StevanFreeborn.Options.xml
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.dll
C:\Users\sfree\Repositories\stevanfreeborn.options\src\StevanFreeborn.Options\obj\Debug\netstandard2.1\StevanFreeborn.Options.pdb
@@ -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>