Skip to content

Commit

Permalink
drop inline static methods from LNMoney.Satoshis
Browse files Browse the repository at this point in the history
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 dotnet/fsharp#1565
  • Loading branch information
joemphilips authored and aarani committed Apr 12, 2023
1 parent 5379324 commit c8bc05b
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions src/DotNetLightning.Core/Utils/LNMoney.fs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit c8bc05b

Please sign in to comment.