diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js')
-rw-r--r-- | intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js b/intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js new file mode 100644 index 0000000000..e517bc9f48 --- /dev/null +++ b/intl/icu_capi/js/package/lib/ICU4XFixedDecimal.js @@ -0,0 +1,235 @@ +import wasm from "./diplomat-wasm.mjs" +import * as diplomatRuntime from "./diplomat-runtime.js" +import { ICU4XError_js_to_rust, ICU4XError_rust_to_js } from "./ICU4XError.js" +import { ICU4XFixedDecimalSign_js_to_rust, ICU4XFixedDecimalSign_rust_to_js } from "./ICU4XFixedDecimalSign.js" +import { ICU4XFixedDecimalSignDisplay_js_to_rust, ICU4XFixedDecimalSignDisplay_rust_to_js } from "./ICU4XFixedDecimalSignDisplay.js" + +const ICU4XFixedDecimal_box_destroy_registry = new FinalizationRegistry(underlying => { + wasm.ICU4XFixedDecimal_destroy(underlying); +}); + +export class ICU4XFixedDecimal { + #lifetimeEdges = []; + constructor(underlying, owned, edges) { + this.underlying = underlying; + this.#lifetimeEdges.push(...edges); + if (owned) { + ICU4XFixedDecimal_box_destroy_registry.register(this, underlying); + } + } + + static create_from_i32(arg_v) { + return new ICU4XFixedDecimal(wasm.ICU4XFixedDecimal_create_from_i32(arg_v), true, []); + } + + static create_from_u32(arg_v) { + return new ICU4XFixedDecimal(wasm.ICU4XFixedDecimal_create_from_u32(arg_v), true, []); + } + + static create_from_i64(arg_v) { + return new ICU4XFixedDecimal(wasm.ICU4XFixedDecimal_create_from_i64(arg_v), true, []); + } + + static create_from_u64(arg_v) { + return new ICU4XFixedDecimal(wasm.ICU4XFixedDecimal_create_from_u64(arg_v), true, []); + } + + static create_from_f64_with_integer_precision(arg_f) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XFixedDecimal_create_from_f64_with_integer_precision(diplomat_receive_buffer, arg_f); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XFixedDecimal(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + + static create_from_f64_with_lower_magnitude(arg_f, arg_magnitude) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XFixedDecimal_create_from_f64_with_lower_magnitude(diplomat_receive_buffer, arg_f, arg_magnitude); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XFixedDecimal(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + + static create_from_f64_with_significant_digits(arg_f, arg_digits) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XFixedDecimal_create_from_f64_with_significant_digits(diplomat_receive_buffer, arg_f, arg_digits); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XFixedDecimal(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + + static create_from_f64_with_floating_precision(arg_f) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XFixedDecimal_create_from_f64_with_floating_precision(diplomat_receive_buffer, arg_f); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XFixedDecimal(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + + static create_from_string(arg_v) { + const buf_arg_v = diplomatRuntime.DiplomatBuf.str(wasm, arg_v); + const diplomat_out = (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XFixedDecimal_create_from_string(diplomat_receive_buffer, buf_arg_v.ptr, buf_arg_v.size); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XFixedDecimal(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + buf_arg_v.free(); + return diplomat_out; + } + + digit_at(arg_magnitude) { + return wasm.ICU4XFixedDecimal_digit_at(this.underlying, arg_magnitude); + } + + magnitude_start() { + return wasm.ICU4XFixedDecimal_magnitude_start(this.underlying); + } + + magnitude_end() { + return wasm.ICU4XFixedDecimal_magnitude_end(this.underlying); + } + + nonzero_magnitude_start() { + return wasm.ICU4XFixedDecimal_nonzero_magnitude_start(this.underlying); + } + + nonzero_magnitude_end() { + return wasm.ICU4XFixedDecimal_nonzero_magnitude_end(this.underlying); + } + + is_zero() { + return wasm.ICU4XFixedDecimal_is_zero(this.underlying); + } + + multiply_pow10(arg_power) { + wasm.ICU4XFixedDecimal_multiply_pow10(this.underlying, arg_power); + } + + sign() { + return ICU4XFixedDecimalSign_rust_to_js[wasm.ICU4XFixedDecimal_sign(this.underlying)]; + } + + set_sign(arg_sign) { + wasm.ICU4XFixedDecimal_set_sign(this.underlying, ICU4XFixedDecimalSign_js_to_rust[arg_sign]); + } + + apply_sign_display(arg_sign_display) { + wasm.ICU4XFixedDecimal_apply_sign_display(this.underlying, ICU4XFixedDecimalSignDisplay_js_to_rust[arg_sign_display]); + } + + trim_start() { + wasm.ICU4XFixedDecimal_trim_start(this.underlying); + } + + trim_end() { + wasm.ICU4XFixedDecimal_trim_end(this.underlying); + } + + pad_start(arg_position) { + wasm.ICU4XFixedDecimal_pad_start(this.underlying, arg_position); + } + + pad_end(arg_position) { + wasm.ICU4XFixedDecimal_pad_end(this.underlying, arg_position); + } + + set_max_position(arg_position) { + wasm.ICU4XFixedDecimal_set_max_position(this.underlying, arg_position); + } + + trunc(arg_position) { + wasm.ICU4XFixedDecimal_trunc(this.underlying, arg_position); + } + + half_trunc(arg_position) { + wasm.ICU4XFixedDecimal_half_trunc(this.underlying, arg_position); + } + + expand(arg_position) { + wasm.ICU4XFixedDecimal_expand(this.underlying, arg_position); + } + + half_expand(arg_position) { + wasm.ICU4XFixedDecimal_half_expand(this.underlying, arg_position); + } + + ceil(arg_position) { + wasm.ICU4XFixedDecimal_ceil(this.underlying, arg_position); + } + + half_ceil(arg_position) { + wasm.ICU4XFixedDecimal_half_ceil(this.underlying, arg_position); + } + + floor(arg_position) { + wasm.ICU4XFixedDecimal_floor(this.underlying, arg_position); + } + + half_floor(arg_position) { + wasm.ICU4XFixedDecimal_half_floor(this.underlying, arg_position); + } + + half_even(arg_position) { + wasm.ICU4XFixedDecimal_half_even(this.underlying, arg_position); + } + + concatenate_end(arg_other) { + return (() => { + const is_ok = wasm.ICU4XFixedDecimal_concatenate_end(this.underlying, arg_other.underlying) == 1; + if (!is_ok) { + throw new diplomatRuntime.FFIError(undefined); + } + })(); + } + + to_string() { + return diplomatRuntime.withWriteable(wasm, (writeable) => { + return wasm.ICU4XFixedDecimal_to_string(this.underlying, writeable); + }); + } +} |