gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ios] 12/36: DD51 Currency rendering


From: gnunet
Subject: [taler-taler-ios] 12/36: DD51 Currency rendering
Date: Mon, 13 Nov 2023 21:27:17 +0100

This is an automated email from the git hooks/post-receive script.

marc-stibane pushed a commit to branch master
in repository taler-ios.

commit d02a14e2289465d8fd5c14cff89c272005ef4a96
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sun Nov 12 13:16:36 2023 +0100

    DD51 Currency rendering
---
 TalerWallet1/Helper/CurrencySpecification.swift | 22 +++++++++++++++++++++-
 taler-swift/Sources/taler-swift/Amount.swift    |  6 +++++-
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/TalerWallet1/Helper/CurrencySpecification.swift 
b/TalerWallet1/Helper/CurrencySpecification.swift
index 01699cf..1cac315 100644
--- a/TalerWallet1/Helper/CurrencySpecification.swift
+++ b/TalerWallet1/Helper/CurrencySpecification.swift
@@ -8,11 +8,31 @@ import taler_swift
 extension Amount {
     func string(_ currencyInfo: CurrencyInfo?) -> String {
         if let currencyInfo {
-            return currencyInfo.string(for: valueAsTuple)
+            return currencyInfo.string(for: valueAsFloatTuple)
         } else {
             return valueStr
         }
     }
+
+    func inputDigits(_ currencyInfo: CurrencyInfo) -> UInt {
+        let inputDigits = currencyInfo.specs.fractionalInputDigits
+        if inputDigits < 0 { return 0 }
+        if inputDigits > 8 { return 8}
+        return UInt(inputDigits)
+    }
+
+    func addDigit(_ digit: UInt8, currencyInfo: CurrencyInfo) {
+        shiftLeft(add: digit, inputDigits(currencyInfo))
+    }
+
+    func removeDigit(_ currencyInfo: CurrencyInfo) {
+        shiftRight()                        // divide by 10
+        mask(inputDigits(currencyInfo))     // replace all digits after 
#inputDigit with 0
+    }
+
+    func plainString(_ currencyInfo: CurrencyInfo) -> String {
+        return plainString(inputDigits: inputDigits(currencyInfo))
+    }
 }
 
 public struct CurrencyInfo {
diff --git a/taler-swift/Sources/taler-swift/Amount.swift 
b/taler-swift/Sources/taler-swift/Amount.swift
index c629248..938b6dc 100644
--- a/taler-swift/Sources/taler-swift/Amount.swift
+++ b/taler-swift/Sources/taler-swift/Amount.swift
@@ -113,7 +113,11 @@ public final class Amount: Codable, Hashable, @unchecked 
Sendable, CustomStringC
     }
 
     /// The tuple representation of the value.
-    public var valueAsTuple: (Double, Double) {
+    public var valueAsDecimalTuple: (UInt64, UInt32) {
+        (integer, fraction)
+    }
+    /// The tuple representation of the value.
+    public var valueAsFloatTuple: (Double, Double) {
         (intValue, fracValue)
     }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]