mirror of
https://github.com/janet-lang/janet
synced 2024-11-25 09:47:17 +00:00
Update janet_getmethod to better match new get api.
This commit is contained in:
parent
8ecf359bbe
commit
8700a407ce
@ -103,13 +103,15 @@ type janet_opt##name(const Janet *argv, int32_t argc, int32_t n, int32_t dflt_le
|
|||||||
return janet_get##name(argv, n); \
|
return janet_get##name(argv, n); \
|
||||||
}
|
}
|
||||||
|
|
||||||
Janet janet_getmethod(const uint8_t *method, const JanetMethod *methods) {
|
int janet_getmethod(const uint8_t *method, const JanetMethod *methods, Janet *out) {
|
||||||
while (methods->name) {
|
while (methods->name) {
|
||||||
if (!janet_cstrcmp(method, methods->name))
|
if (!janet_cstrcmp(method, methods->name)) {
|
||||||
return janet_wrap_cfunction(methods->cfun);
|
*out = janet_wrap_cfunction(methods->cfun);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
methods++;
|
methods++;
|
||||||
}
|
}
|
||||||
return janet_wrap_nil();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_GETTER(number, NUMBER, double)
|
DEFINE_GETTER(number, NUMBER, double)
|
||||||
|
@ -355,16 +355,14 @@ static int it_s64_get(void *p, Janet key, Janet *out) {
|
|||||||
(void) p;
|
(void) p;
|
||||||
if (!janet_checktype(key, JANET_KEYWORD))
|
if (!janet_checktype(key, JANET_KEYWORD))
|
||||||
return 0;
|
return 0;
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), it_s64_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), it_s64_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int it_u64_get(void *p, Janet key, Janet *out) {
|
static int it_u64_get(void *p, Janet key, Janet *out) {
|
||||||
(void) p;
|
(void) p;
|
||||||
if (!janet_checktype(key, JANET_KEYWORD))
|
if (!janet_checktype(key, JANET_KEYWORD))
|
||||||
return 0;
|
return 0;
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), it_u64_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), it_u64_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const JanetReg it_cfuns[] = {
|
static const JanetReg it_cfuns[] = {
|
||||||
|
@ -357,8 +357,7 @@ static int io_file_get(void *p, Janet key, Janet *out) {
|
|||||||
(void) p;
|
(void) p;
|
||||||
if (!janet_checktype(key, JANET_KEYWORD))
|
if (!janet_checktype(key, JANET_KEYWORD))
|
||||||
return 0;
|
return 0;
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), io_file_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), io_file_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE *janet_dynfile(const char *name, FILE *def) {
|
FILE *janet_dynfile(const char *name, FILE *def) {
|
||||||
|
@ -199,8 +199,7 @@ static const JanetMethod rng_methods[] = {
|
|||||||
static int janet_rng_get(void *p, Janet key, Janet *out) {
|
static int janet_rng_get(void *p, Janet key, Janet *out) {
|
||||||
(void) p;
|
(void) p;
|
||||||
if (!janet_checktype(key, JANET_KEYWORD)) return 0;
|
if (!janet_checktype(key, JANET_KEYWORD)) return 0;
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), rng_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), rng_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get a random number */
|
/* Get a random number */
|
||||||
|
@ -1058,8 +1058,7 @@ static const JanetMethod parser_methods[] = {
|
|||||||
static int parserget(void *p, Janet key, Janet *out) {
|
static int parserget(void *p, Janet key, Janet *out) {
|
||||||
(void) p;
|
(void) p;
|
||||||
if (!janet_checktype(key, JANET_KEYWORD)) return 0;
|
if (!janet_checktype(key, JANET_KEYWORD)) return 0;
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), parser_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), parser_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const JanetReg parse_cfuns[] = {
|
static const JanetReg parse_cfuns[] = {
|
||||||
|
@ -170,8 +170,7 @@ static int ta_getter(void *p, Janet key, Janet *out) {
|
|||||||
size_t index, i;
|
size_t index, i;
|
||||||
JanetTArrayView *array = p;
|
JanetTArrayView *array = p;
|
||||||
if (janet_checktype(key, JANET_KEYWORD)) {
|
if (janet_checktype(key, JANET_KEYWORD)) {
|
||||||
*out = janet_getmethod(janet_unwrap_keyword(key), tarray_view_methods);
|
return janet_getmethod(janet_unwrap_keyword(key), tarray_view_methods, out);
|
||||||
return !janet_checktype(*out, JANET_NIL);
|
|
||||||
}
|
}
|
||||||
if (!janet_checksize(key)) janet_panic("expected size as key");
|
if (!janet_checksize(key)) janet_panic("expected size as key");
|
||||||
index = (size_t) janet_unwrap_number(key);
|
index = (size_t) janet_unwrap_number(key);
|
||||||
|
@ -1355,7 +1355,7 @@ JANET_NO_RETURN JANET_API void janet_panic_abstract(Janet x, int32_t n, const Ja
|
|||||||
JANET_API void janet_arity(int32_t arity, int32_t min, int32_t max);
|
JANET_API void janet_arity(int32_t arity, int32_t min, int32_t max);
|
||||||
JANET_API void janet_fixarity(int32_t arity, int32_t fix);
|
JANET_API void janet_fixarity(int32_t arity, int32_t fix);
|
||||||
|
|
||||||
JANET_API Janet janet_getmethod(const uint8_t *method, const JanetMethod *methods);
|
JANET_API int janet_getmethod(const uint8_t *method, const JanetMethod *methods, Janet *out);
|
||||||
|
|
||||||
JANET_API double janet_getnumber(const Janet *argv, int32_t n);
|
JANET_API double janet_getnumber(const Janet *argv, int32_t n);
|
||||||
JANET_API JanetArray *janet_getarray(const Janet *argv, int32_t n);
|
JANET_API JanetArray *janet_getarray(const Janet *argv, int32_t n);
|
||||||
|
Loading…
Reference in New Issue
Block a user