|
@ -0,0 +1,38 @@ |
|
|
|
|
|
using IPA.Config.Data; |
|
|
|
|
|
using System; |
|
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
using System.Linq; |
|
|
|
|
|
using System.Text; |
|
|
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
|
|
|
|
namespace IPA.Config.Stores.Converters |
|
|
|
|
|
{ |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Provides utility functions for custom converters.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static class Converter |
|
|
|
|
|
{ |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Gets the integral value of a <see cref="Value"/>, coercing a <see cref="FloatingPoint"/> if necessary,
|
|
|
|
|
|
/// or <see langword="null"/> if <paramref name="val"/> is not an <see cref="Integer"/> or <see cref="FloatingPoint"/>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="val">the <see cref="Value"/> to get the integral value of</param>
|
|
|
|
|
|
/// <returns>the integral value of <paramref name="val"/>, or <see langword="null"/></returns>
|
|
|
|
|
|
public static long? IntValue(Value val) |
|
|
|
|
|
=> val is Integer inte ? inte.Value : |
|
|
|
|
|
val is FloatingPoint fp ? fp.AsInteger()?.Value : |
|
|
|
|
|
null; |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Gets the floaing point value of a <see cref="Value"/>, coercing an <see cref="Integer"/> if necessary,
|
|
|
|
|
|
/// or <see langword="null"/> if <paramref name="val"/> is not an <see cref="Integer"/> or <see cref="FloatingPoint"/>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="val">the <see cref="Value"/> to get the floaing point value of</param>
|
|
|
|
|
|
/// <returns>the floaing point value of <paramref name="val"/>, or <see langword="null"/></returns>
|
|
|
|
|
|
public static decimal? FloatValue(Value val) |
|
|
|
|
|
=> val is FloatingPoint fp ? fp.Value : |
|
|
|
|
|
val is Integer inte ? inte.AsFloat()?.Value : |
|
|
|
|
|
null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |