json: add a helper to split a json token given a specific character

credits @rustyrussell
This commit is contained in:
darosior 2019-06-11 10:55:45 +02:00 committed by Rusty Russell
parent db22d2ba9a
commit ca4b07c529
2 changed files with 22 additions and 0 deletions

View file

@ -75,3 +75,19 @@ bool json_to_txid(const char *buffer, const jsmntok_t *tok,
return bitcoin_txid_from_hex(buffer + tok->start, return bitcoin_txid_from_hex(buffer + tok->start,
tok->end - tok->start, txid); tok->end - tok->start, txid);
} }
bool split_tok(const char *buffer, const jsmntok_t *tok,
char split,
jsmntok_t *a,
jsmntok_t *b)
{
const char *p = memchr(buffer + tok->start, split, tok->end - tok->start);
if (!p)
return false;
*a = *b = *tok;
a->end = p - buffer;
b->start = p + 1 - buffer;
return true;
}

View file

@ -39,4 +39,10 @@ bool json_to_msat(const char *buffer, const jsmntok_t *tok,
/* Extract a bitcoin txid from this */ /* Extract a bitcoin txid from this */
bool json_to_txid(const char *buffer, const jsmntok_t *tok, bool json_to_txid(const char *buffer, const jsmntok_t *tok,
struct bitcoin_txid *txid); struct bitcoin_txid *txid);
/* Split a json token into 2 tokens given a splitting character */
bool split_tok(const char *buffer, const jsmntok_t *tok,
char split,
jsmntok_t *a,
jsmntok_t *b);
#endif /* LIGHTNING_COMMON_JSON_HELPERS_H */ #endif /* LIGHTNING_COMMON_JSON_HELPERS_H */