Tilde Friends
util.js.h
1#pragma once
2
9#include "quickjs.h"
10
11#include <stdbool.h>
12
17{
18 k_kind_unknown,
19 k_kind_bool,
20 k_kind_int,
21 k_kind_string,
23
25typedef struct uv_loop_s uv_loop_t;
26
32
39JSValue tf_util_utf8_decode(JSContext* context, JSValue value);
40
48uint8_t* tf_util_try_get_array_buffer(JSContext* context, size_t* psize, JSValueConst obj);
49
59JSValue tf_util_try_get_typed_array_buffer(JSContext* context, JSValueConst obj, size_t* pbyte_offset, size_t* pbyte_length, size_t* pbytes_per_element);
60
67bool tf_util_report_error(JSContext* context, JSValue value);
68
75int tf_util_get_length(JSContext* context, JSValue value);
76
86int tf_util_insert_index(const void* key, const void* base, size_t count, size_t size, int (*compare)(const void*, const void*));
87
95JSValue tf_util_new_uint8_array(JSContext* context, const uint8_t* data, size_t size);
96
105size_t tf_base64_encode(const uint8_t* source, size_t source_length, char* out, size_t out_length);
106
115size_t tf_base64_decode(const char* source, size_t source_length, uint8_t* out, size_t out_length);
116
123int tf_util_backtrace(void** buffer, int count);
124
133const char* tf_util_backtrace_to_string(void* const* buffer, int count);
134
142
147
152const char* tf_util_function_to_string(void* function);
153
160#define tf_min(a, b) \
161 ({ \
162 __typeof__(a) _a = (a); \
163 __typeof__(b) _b = (b); \
164 _a > _b ? _b : _a; \
165 })
166
173#define tf_max(a, b) \
174 ({ \
175 __typeof__(a) _a = (a); \
176 __typeof__(b) _b = (b); \
177 _a > _b ? _a : _b; \
178 })
179
185#define tf_countof(a) ((int)(sizeof((a)) / sizeof(*(a))))
186
193
200
206const char* tf_util_get_default_global_setting_string(const char* name);
207
214
219void tf_util_document_settings(const char* line_prefix);
220
226
234size_t tf_string_set(char* buffer, size_t size, const char* string);
235
struct JSContext JSContext
Definition: api.js.h:10
struct uv_loop_s uv_loop_t
Definition: http.h:33
size_t tf_string_set(char *buffer, size_t size, const char *string)
_tf_setting_kind_t
Definition: util.js.h:17
int tf_util_get_default_global_setting_int(const char *name)
const char * tf_util_get_default_global_setting_string(const char *name)
uint8_t * tf_util_try_get_array_buffer(JSContext *context, size_t *psize, JSValueConst obj)
tf_setting_kind_t tf_util_get_global_setting_kind(const char *name)
enum _tf_setting_kind_t tf_setting_kind_t
size_t tf_base64_decode(const char *source, size_t source_length, uint8_t *out, size_t out_length)
void tf_util_document_settings(const char *line_prefix)
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)
const char * tf_util_function_to_string(void *function)
JSValue tf_util_utf8_decode(JSContext *context, JSValue value)
void tf_util_register(JSContext *context)
const char * tf_util_backtrace_to_string(void *const *buffer, int count)
void tf_util_print_backtrace()
bool tf_util_is_mobile()
int tf_util_backtrace(void **buffer, int count)
size_t tf_base64_encode(const uint8_t *source, size_t source_length, char *out, size_t out_length)
const char * tf_util_backtrace_string()
int tf_util_get_length(JSContext *context, JSValue value)
JSValue tf_util_new_uint8_array(JSContext *context, const uint8_t *data, size_t size)
int tf_util_insert_index(const void *key, const void *base, size_t count, size_t size, int(*compare)(const void *, const void *))
bool tf_util_report_error(JSContext *context, JSValue value)
bool tf_util_get_default_global_setting_bool(const char *name)