|
|
- 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;
- }
-
-
- }
|