Skip to content

fluidsonic/fluid-currency

Repository files navigation

fluid-currency

Maven Central Tests Kotlin #fluid-libraries Slack Channel

Kotlin multiplatform currency library.

This is most useful in combination with fluid-i18n for retrieving internationalized information about a currency.

Installation

build.gradle.kts:

dependencies {
	implementation("io.fluidsonic.currency:fluid-currency:0.13.0")
}

Usage

println(Currency.fromCode("EUR")) // EUR

class Currency

A class with information about a specific currency defined by ISO 4217.

val currency = Currency.forCode("EUR") // throws if code is invalid (not defined by ISO 4217) or has an invalid format (not three latin letters)
println(currency.code) // EUR
println(currency.defaultFractionDigits) // 2
println(currency.numericCode) // 978
val currency = Currency.forCodeOrNull("ABC123") // null if code is invalid (not defined by ISO 4217) or has an invalid format (not three latin letters)
println(currency) // null

class CurrencyCode

An inline class for ISO 4217 3-letter currency codes (e.g. EUR or USD).

val code = CurrencyCode.parse("EUR") // throws if code has invalid format (not three latin letters)
println(code.toString()) // EUR
println(code.isValid()) // true - 'EUR' is defined by ISO 4217
val code = CurrencyCode.parse("abc") // throws if code has invalid format (not three latin letters)
println(code.toString()) // ABC
println(code.isValid()) // false - 'ABC' is not defined by ISO 4217
val code = CurrencyCode.parseOrNull("ABC123") // null if code has invalid format (not three latin letters)
println(code) // null

License

Apache 2.0