/* * Copyright 2020 Esben Bjerre * * Use of this source code is governed by the Apache 2.0 license * that can be found in the LICENSE.md file. */////// Trait for types that support subtraction, and its functions.///pubmod Sub {////// Trait for types that support subtraction.///pubtraitSub[a] {////// Returns the difference of `x` and `y`.///pubdefsub(x: a, y: a): a }instanceSub[Float32] {pubdefsub(x: Float32, y: Float32): Float32 = %%FLOAT32_SUB%%(x, y) }instanceSub[Float64] {pubdefsub(x: Float64, y: Float64): Float64 = %%FLOAT64_SUB%%(x, y) }instanceSub[BigDecimal] {pubdefsub(x: BigDecimal, y: BigDecimal): BigDecimal = x.subtract(y) }instanceSub[Int8] {pubdefsub(x: Int8, y: Int8): Int8 = %%INT8_SUB%%(x, y) }instanceSub[Int16] {pubdefsub(x: Int16, y: Int16): Int16 = %%INT16_SUB%%(x, y) }instanceSub[Int32] {pubdefsub(x: Int32, y: Int32): Int32 = %%INT32_SUB%%(x, y) }instanceSub[Int64] {pubdefsub(x: Int64, y: Int64): Int64 = %%INT64_SUB%%(x, y) }instanceSub[BigInt] {pubdefsub(x: BigInt, y: BigInt): BigInt = x.subtract(y) }}