nostrdb

an unfairly fast embedded nostr database backed by lmdb
git clone git://jb55.com/nostrdb
Log | Files | Refs | Submodules | README | LICENSE

print_util.h (1318B)


      1 #include "hex.h"
      2 #include "lmdb.h"
      3 
      4 static void print_hex(unsigned char* data, size_t size) {
      5 	size_t i;
      6 	for (i = 0; i < size; i++) {
      7 		printf("%02x", data[i]);
      8 	}
      9 }
     10 
     11 static void ndb_print_text_search_key(int bytes_size, struct ndb_text_search_key *key)
     12 {
     13 	printf("K<'%.*s' %" PRIu64 " %" PRIu64 " note_id:%" PRIu64 " bytes:%d>", (int)key->str_len, key->str,
     14 						    key->word_index,
     15 						    key->timestamp,
     16 						    key->note_id,
     17 						    bytes_size
     18 						    );
     19 
     20 }
     21 
     22 static void print_tag_kv(struct ndb_txn *txn, MDB_val *k, MDB_val *v)
     23 {
     24 	char hex_id[65];
     25 	struct ndb_note *note;
     26 	uint64_t ts;
     27 
     28 	ts = *(uint64_t*)((uint8_t*)k->mv_data+(k->mv_size-8));
     29 
     30 	// TODO: p tags, etc
     31 	if (((const char*)k->mv_data)[0] == 'e' && k->mv_size == (1 + 32 + 8)) {
     32 		printf("note_tags 'e");
     33 		print_hex((uint8_t*)k->mv_data+1, 32);
     34 		printf("' %" PRIu64, ts);
     35 	} else {
     36 		printf("note_tags '%.*s' %" PRIu64, (int)k->mv_size-8,
     37 		       (const char *)k->mv_data, ts);
     38 	}
     39 
     40 	ts = *(uint64_t*)v->mv_data;
     41 
     42 	note = ndb_get_note_by_key(txn, ts, NULL);
     43 	assert(note);
     44 	hex_encode(ndb_note_id(note), 32, hex_id);
     45 	printf(" note_key:%" PRIu64 " id:%s\n", ts, hex_id);
     46 }
     47 
     48 static void print_hex_stream(FILE *stream, unsigned char* data, size_t size) {
     49 	size_t i;
     50 	for (i = 0; i < size; i++) {
     51 		fprintf(stream, "%02x", data[i]);
     52 	}
     53 }
     54 
     55