From c8bc05baa51a30481f1071b22865d0cfcd896b57 Mon Sep 17 00:00:00 2001 From: "joe.miyamoto" Date: Tue, 26 Apr 2022 08:37:49 +0900 Subject: [PATCH] drop inline static methods from LNMoney.Satoshis Since compiler sometimes complains that it doesn't know which overload to use. Instead we just prepare constructors for each integral types. Might be related to https://github.com/dotnet/fsharp/issues/1565 --- src/DotNetLightning.Core/Utils/LNMoney.fs | 25 +++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/DotNetLightning.Core/Utils/LNMoney.fs b/src/DotNetLightning.Core/Utils/LNMoney.fs index dfcef90ae..180280b2b 100644 --- a/src/DotNetLightning.Core/Utils/LNMoney.fs +++ b/src/DotNetLightning.Core/Utils/LNMoney.fs @@ -48,23 +48,30 @@ type LNMoney = | LNMoney of int64 with static member Satoshis(satoshis: decimal) = LNMoney.FromUnit(satoshis * (decimal LNMoneyUnit.Satoshi), LNMoneyUnit.MilliSatoshi) + static member MilliSatoshis(sats: int64) = + LNMoney sats + + static member MilliSatoshis(sats: uint64) = + LNMoney(Checked.int64 sats) + + static member MilliSatoshis(sats: int) = + LNMoney(Checked.int64 sats) + + static member MilliSatoshis(sats: uint32) = + LNMoney(Checked.int64 sats) + static member Satoshis(sats: int64) = LNMoney.MilliSatoshis(Checked.op_Multiply 1000L sats) - static member inline Satoshis(sats) = - LNMoney.Satoshis(int64 sats) - static member Satoshis(sats: uint64) = LNMoney.MilliSatoshis(Checked.op_Multiply 1000UL sats) - static member MilliSatoshis(sats: int64) = - LNMoney(sats) + static member Satoshis(sats: int) = + LNMoney.Satoshis(Checked.int64 sats) - static member inline MilliSatoshis(sats) = - LNMoney(int64 sats) + static member Satoshis(sats: uint32) = + LNMoney.Satoshis(Checked.int64 sats) - static member MilliSatoshis(sats: uint64) = - LNMoney(Checked.int64 sats) static member Zero = LNMoney(0L) static member One = LNMoney(1L)