1023dd3b8Sopenharmony_ci/*!
2023dd3b8Sopenharmony_ci *  decimal.js v10.4.3
3023dd3b8Sopenharmony_ci *  An arbitrary-precision Decimal type for JavaScript.
4023dd3b8Sopenharmony_ci *  https://github.com/MikeMcl/decimal.js
5023dd3b8Sopenharmony_ci *  Copyright (c) 2024 Huawei Device Co., Ltd.
6023dd3b8Sopenharmony_ci *  MIT Licence
7023dd3b8Sopenharmony_ci */
8023dd3b8Sopenharmony_ci
9023dd3b8Sopenharmony_ci#include "native_engine/native_engine.h"
10023dd3b8Sopenharmony_ci
11023dd3b8Sopenharmony_ciextern const char _binary_decimal_mjs_start[];
12023dd3b8Sopenharmony_ciextern const char _binary_decimal_mjs_end[];
13023dd3b8Sopenharmony_ciextern const char _binary_decimal_abc_start[];
14023dd3b8Sopenharmony_ciextern const char _binary_decimal_abc_end[];
15023dd3b8Sopenharmony_ci
16023dd3b8Sopenharmony_ci// Napi get mjs code function
17023dd3b8Sopenharmony_ciextern "C" __attribute__((visibility("default")))
18023dd3b8Sopenharmony_civoid NAPI_arkts_math_Decimal_GetMJSCode(const char **buf, int *buflen)
19023dd3b8Sopenharmony_ci{
20023dd3b8Sopenharmony_ci    if (buf != nullptr) {
21023dd3b8Sopenharmony_ci        *buf = _binary_decimal_mjs_start;
22023dd3b8Sopenharmony_ci    }
23023dd3b8Sopenharmony_ci    if (buflen != nullptr) {
24023dd3b8Sopenharmony_ci        *buflen = _binary_decimal_mjs_end - _binary_decimal_mjs_start;
25023dd3b8Sopenharmony_ci    }
26023dd3b8Sopenharmony_ci}
27023dd3b8Sopenharmony_ci
28023dd3b8Sopenharmony_ci// Napi get abc code function
29023dd3b8Sopenharmony_ciextern "C" __attribute__((visibility("default")))
30023dd3b8Sopenharmony_civoid NAPI_arkts_math_Decimal_GetABCCode(const char **buf, int *buflen)
31023dd3b8Sopenharmony_ci{
32023dd3b8Sopenharmony_ci    if (buf != nullptr) {
33023dd3b8Sopenharmony_ci        *buf = _binary_decimal_abc_start;
34023dd3b8Sopenharmony_ci    }
35023dd3b8Sopenharmony_ci    if (buflen != nullptr) {
36023dd3b8Sopenharmony_ci        *buflen = _binary_decimal_abc_end - _binary_decimal_abc_start;
37023dd3b8Sopenharmony_ci    }
38023dd3b8Sopenharmony_ci}
39023dd3b8Sopenharmony_ci
40023dd3b8Sopenharmony_ci/*
41023dd3b8Sopenharmony_ci * Module define
42023dd3b8Sopenharmony_ci */
43023dd3b8Sopenharmony_cistatic napi_module DecimalModule = {
44023dd3b8Sopenharmony_ci    .nm_filename = nullptr,
45023dd3b8Sopenharmony_ci    .nm_modname = "arkts.math.Decimal",
46023dd3b8Sopenharmony_ci};
47023dd3b8Sopenharmony_ciextern "C" __attribute__((constructor)) void DecimalRegisterModule(void)
48023dd3b8Sopenharmony_ci{
49023dd3b8Sopenharmony_ci    napi_module_register(&DecimalModule);
50023dd3b8Sopenharmony_ci}
51