diff options
| author | 2023-03-22 16:28:39 -0400 | |
|---|---|---|
| committer | 2023-03-22 16:28:39 -0400 | |
| commit | ac7648727c4b7dcfe95fad0bdf84668ddf5df220 (patch) | |
| tree | d5411c2256807b4e03610faf314df7e37f17b843 | |
| parent | readme: update readme progress (diff) | |
native: add OO-like calls to jurl_type
also fix a jurl.h typo: getopt -> getinfo
| -rw-r--r-- | jurl.c | 22 | ||||
| -rw-r--r-- | jurl.h | 2 |
2 files changed, 22 insertions, 2 deletions
@@ -20,10 +20,29 @@ int jurl_gc(void *p, size_t s) { return 0; } +static JanetMethod jurl_methods[] = { + {"reset", jurl_reset}, + {"dup", jurl_dup}, + {"perform", jurl_perform}, + {"getinfo", jurl_getinfo}, + {"setopt", jurl_setopt}, + {NULL, NULL}, +}; + +static int jurl_get(void *p, Janet key, Janet *out) { + (void) p; + if (!janet_checktype(key, JANET_KEYWORD)) { + return 0; + } + return janet_getmethod(janet_unwrap_keyword(key), jurl_methods, out); +} + const JanetAbstractType jurl_type = { "jurl", // name jurl_gc, // gc - JANET_ATEND_GC + NULL, // gcmark + jurl_get, // get + JANET_ATEND_GET }; jurl_handle *janet_getjurl(Janet *argv, int32_t n) { @@ -122,3 +141,4 @@ JANET_CFUN(jurl_perform) { jurl_handle *jurl = (jurl_handle*)janet_getjurl(argv, 0); return jurl_geterror(curl_easy_perform(jurl->handle)); } + @@ -40,7 +40,7 @@ Janet jurl_geterror(CURLcode code); JANET_CFUN(jurl_strerror); // jurl_getinfo.c -JANET_CFUN(jurl_getopt); +JANET_CFUN(jurl_getinfo); // jurl_setopt.c JANET_CFUN(jurl_setopt); |
