src/Sirh3e.Rust/Option/Methods/Option.MapOr.cs

Summary

Maintainability
A
0 mins
Test Coverage
namespace Sirh3e.Rust.Option;

public partial struct Option<TSome>
{
    /// <summary>
    /// Applies a function to the contained value (if any), or returns the provided default (if not).
    /// </summary>
    /// <param name="default"></param>
    /// <param name="converter"></param>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public T MapOr<T>(T @default, Func<TSome, T> converter)
        => Match(
                 some => converter(some) ?? throw new ArgumentNullException(nameof(converter)),
                 () => @default ?? throw new ArgumentNullException(nameof(@default))
                );
}