using DecimalMath;
using InnovEnergy.Lib.Units.Generator;
using InnovEnergy.Lib.Utils;

namespace InnovEnergy.Lib.Units;

[Generate]
public readonly partial struct Angle
{
    public static String Unit   => "rad"; 
    public static String Symbol => "∠"; 

    public static readonly Angle Pi = new Angle(DecimalEx.Pi);
    

    public Angle(Decimal value)
    {
        var modulo = value.Modulo(DecimalEx.TwoPi);
        
        Value = modulo > DecimalEx.Pi 
              ? modulo - DecimalEx.TwoPi 
              : modulo;
    }
   
}