39 lines
1.4 KiB
C
39 lines
1.4 KiB
C
#pragma once
|
|
|
|
/**
|
|
** \defgroup util_js Utilities
|
|
** This is becoming just a dumping ground of small helpers.
|
|
** @{
|
|
*/
|
|
|
|
#include "quickjs.h"
|
|
|
|
#include <stdbool.h>
|
|
|
|
void tf_util_register(JSContext* context);
|
|
JSValue tf_util_utf8_decode(JSContext* context, JSValue value);
|
|
uint8_t* tf_util_try_get_array_buffer(JSContext* context, size_t* psize, JSValueConst obj);
|
|
JSValue tf_util_try_get_typed_array_buffer(JSContext* context, JSValueConst obj, size_t* pbyte_offset, size_t* pbyte_length, size_t* pbytes_per_element);
|
|
bool tf_util_report_error(JSContext* context, JSValue value);
|
|
int tf_util_get_length(JSContext* context, JSValue value);
|
|
int tf_util_insert_index(const void* key, const void* base, size_t count, size_t size, int (*compare)(const void*, const void*));
|
|
JSValue tf_util_new_uint8_array(JSContext* context, const uint8_t* data, size_t size);
|
|
|
|
size_t tf_base64_encode(const uint8_t* source, size_t source_length, char* out, size_t out_length);
|
|
size_t tf_base64_decode(const char* source, size_t source_length, uint8_t* out, size_t out_length);
|
|
|
|
int tf_util_backtrace(void** buffer, int count);
|
|
const char* tf_util_backtrace_to_string(void* const* buffer, int count);
|
|
const char* tf_util_backtrace_string();
|
|
|
|
const char* tf_util_function_to_string(void* function);
|
|
|
|
#define tf_min(a, b) \
|
|
({ \
|
|
__typeof__(a) _a = (a); \
|
|
__typeof__(b) _b = (b); \
|
|
_a > _b ? _b : _a; \
|
|
})
|
|
|
|
/** @} */
|