[DebuggerStepThrough] public static Unit <T> operator +(Unit <T> lhs, T rhs) { return(new Unit <T>(Operators <T> .Add(lhs.Value, rhs), lhs.UnitId)); }
[DebuggerStepThrough] public static Unit <T> operator -(Unit <T> lhs) { return(new Unit <T>(Operators <T> .Neg(lhs.Value), lhs.UnitId)); }
public string ToString(string fmt, IFormatProvider fp, bool include_units = false) { var str = Operators <T> .ToString(Value, fmt, fp); return(include_units ? $"{str} {Unit_.Types[UnitId]}" : str); }
[DebuggerStepThrough] public static Unit <T> operator /(T lhs, Unit <T> rhs) { var id = Unit_.CombineUnits(Unit_.NoUnitsId, rhs.UnitId, divide: true); return(new Unit <T>(Operators <T> .Div(lhs, rhs.Value), id)); }
[DebuggerStepThrough] public static Unit <T> operator *(T lhs, Unit <T> rhs) { return(new Unit <T>(Operators <T> .Mul(lhs, rhs.Value), rhs.UnitId)); }
[DebuggerStepThrough] public static Unit <T> operator *(Unit <T> lhs, Unit <T> rhs) { var id = Unit_.CombineUnits(lhs.UnitId, rhs.UnitId, divide: false); return(new Unit <T>(Operators <T> .Mul(lhs.Value, rhs.Value), id)); }