mirror of
https://github.com/isar/libmdbx.git
synced 2025-11-06 19:08:56 +08:00
mdbx: add float-point-free mdbx_ratio2percents() and mdbx_ratio2digits() to API for tools.
This commit is contained in:
4
mdbx.h
4
mdbx.h
@@ -6675,6 +6675,10 @@ LIBMDBX_API int mdbx_env_chk(MDBX_env *env, const MDBX_chk_callbacks_t *cb, MDBX
|
|||||||
* \returns Нулевое значение в случае успеха, иначе код ошибки. */
|
* \returns Нулевое значение в случае успеха, иначе код ошибки. */
|
||||||
LIBMDBX_API int mdbx_env_chk_encount_problem(MDBX_chk_context_t *ctx);
|
LIBMDBX_API int mdbx_env_chk_encount_problem(MDBX_chk_context_t *ctx);
|
||||||
|
|
||||||
|
LIBMDBX_API const char *mdbx_ratio2digits(uint64_t numerator, uint64_t denominator, int precision, char* buffer, size_t buffer_size);
|
||||||
|
|
||||||
|
LIBMDBX_API const char *mdbx_ratio2percents(uint64_t value, uint64_t whole, char *buffer, size_t buffer_size);
|
||||||
|
|
||||||
/** end of chk @} */
|
/** end of chk @} */
|
||||||
|
|
||||||
/** end of c_api @} */
|
/** end of c_api @} */
|
||||||
|
|||||||
@@ -163,3 +163,29 @@ int mdbx_txn_unlock(MDBX_env *env) {
|
|||||||
lck_txn_unlock(env);
|
lck_txn_unlock(env);
|
||||||
return MDBX_SUCCESS;
|
return MDBX_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
* Auxiliary */
|
||||||
|
|
||||||
|
__cold const char *mdbx_ratio2digits(uint64_t numerator, uint64_t denominator, int precision, char *buffer,
|
||||||
|
size_t buffer_size) {
|
||||||
|
if (!buffer)
|
||||||
|
return "nullptr";
|
||||||
|
else if (buffer_size < sizeof(ratio2digits_buffer_t))
|
||||||
|
return "buffer-to-small";
|
||||||
|
else if (!denominator)
|
||||||
|
return numerator ? "infinity" : "undefined";
|
||||||
|
else
|
||||||
|
return ratio2digits(numerator, denominator, (ratio2digits_buffer_t *)buffer, precision);
|
||||||
|
}
|
||||||
|
|
||||||
|
__cold const char *mdbx_ratio2percents(uint64_t value, uint64_t whole, char *buffer, size_t buffer_size) {
|
||||||
|
if (!buffer)
|
||||||
|
return "nullptr";
|
||||||
|
else if (buffer_size < sizeof(ratio2digits_buffer_t))
|
||||||
|
return "buffer-to-small";
|
||||||
|
else if (!whole)
|
||||||
|
return value ? "infinity" : "undefined";
|
||||||
|
else
|
||||||
|
return ratio2percent(value, whole, (ratio2digits_buffer_t *)buffer);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user