commit 502ceee6d456d3583824d19f550e18eba4cdff8e
parent 4f628ec733018bf65ed8f7d9f27b4c6265ce523a
Author: William Casarin <jb55@jb55.com>
Date: Mon, 23 Oct 2023 10:34:45 +0800
ndb: update bindings
This adds new bindings from nostrdb related to tracking reaction stats.
We aren't using this yet but it's a part of the latest nostrdb update.
Diffstat:
5 files changed, 250 insertions(+), 18 deletions(-)
diff --git a/nostrdb/bindings/c/meta_builder.h b/nostrdb/bindings/c/meta_builder.h
@@ -20,19 +20,31 @@
static const flatbuffers_voffset_t __NdbEventMeta_required[] = { 0 };
typedef flatbuffers_ref_t NdbEventMeta_ref_t;
static NdbEventMeta_ref_t NdbEventMeta_clone(flatbuffers_builder_t *B, NdbEventMeta_table_t t);
-__flatbuffers_build_table(flatbuffers_, NdbEventMeta, 1)
+__flatbuffers_build_table(flatbuffers_, NdbEventMeta, 6)
-#define __NdbEventMeta_formal_args , int32_t v0
-#define __NdbEventMeta_call_args , v0
+#define __NdbEventMeta_formal_args ,\
+ int32_t v0, int32_t v1, int32_t v2, int32_t v3, int32_t v4, int64_t v5
+#define __NdbEventMeta_call_args ,\
+ v0, v1, v2, v3, v4, v5
static inline NdbEventMeta_ref_t NdbEventMeta_create(flatbuffers_builder_t *B __NdbEventMeta_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, NdbEventMeta, NdbEventMeta_file_identifier, NdbEventMeta_type_identifier)
__flatbuffers_build_scalar_field(0, flatbuffers_, NdbEventMeta_received_at, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), NdbEventMeta)
+__flatbuffers_build_scalar_field(1, flatbuffers_, NdbEventMeta_reactions, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), NdbEventMeta)
+__flatbuffers_build_scalar_field(2, flatbuffers_, NdbEventMeta_quotes, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), NdbEventMeta)
+__flatbuffers_build_scalar_field(3, flatbuffers_, NdbEventMeta_reposts, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), NdbEventMeta)
+__flatbuffers_build_scalar_field(4, flatbuffers_, NdbEventMeta_zaps, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), NdbEventMeta)
+__flatbuffers_build_scalar_field(5, flatbuffers_, NdbEventMeta_zap_total, flatbuffers_int64, int64_t, 8, 8, INT64_C(0), NdbEventMeta)
static inline NdbEventMeta_ref_t NdbEventMeta_create(flatbuffers_builder_t *B __NdbEventMeta_formal_args)
{
if (NdbEventMeta_start(B)
- || NdbEventMeta_received_at_add(B, v0)) {
+ || NdbEventMeta_zap_total_add(B, v5)
+ || NdbEventMeta_received_at_add(B, v0)
+ || NdbEventMeta_reactions_add(B, v1)
+ || NdbEventMeta_quotes_add(B, v2)
+ || NdbEventMeta_reposts_add(B, v3)
+ || NdbEventMeta_zaps_add(B, v4)) {
return 0;
}
return NdbEventMeta_end(B);
@@ -42,7 +54,12 @@ static NdbEventMeta_ref_t NdbEventMeta_clone(flatbuffers_builder_t *B, NdbEventM
{
__flatbuffers_memoize_begin(B, t);
if (NdbEventMeta_start(B)
- || NdbEventMeta_received_at_pick(B, t)) {
+ || NdbEventMeta_zap_total_pick(B, t)
+ || NdbEventMeta_received_at_pick(B, t)
+ || NdbEventMeta_reactions_pick(B, t)
+ || NdbEventMeta_quotes_pick(B, t)
+ || NdbEventMeta_reposts_pick(B, t)
+ || NdbEventMeta_zaps_pick(B, t)) {
return 0;
}
__flatbuffers_memoize_end(B, t, NdbEventMeta_end(B));
diff --git a/nostrdb/bindings/c/meta_json_parser.h b/nostrdb/bindings/c/meta_json_parser.h
@@ -33,16 +33,14 @@ static const char *NdbEventMeta_parse_json_table(flatcc_json_parser_t *ctx, cons
uint64_t w;
*result = 0;
- if (flatcc_builder_start_table(ctx->ctx, 1)) goto failed;
+ if (flatcc_builder_start_table(ctx->ctx, 6)) goto failed;
buf = flatcc_json_parser_object_start(ctx, buf, end, &more);
while (more) {
buf = flatcc_json_parser_symbol_start(ctx, buf, end);
w = flatcc_json_parser_symbol_part(buf, end);
- if (w == 0x7265636569766564) { /* descend "received" */
- buf += 8;
- w = flatcc_json_parser_symbol_part(buf, end);
- if ((w & 0xffffff0000000000) == 0x5f61740000000000) { /* "_at" */
- buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 3);
+ if (w < 0x7265636569766564) { /* branch "received" */
+ if ((w & 0xffffffffffff0000) == 0x71756f7465730000) { /* "quotes" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 6);
if (mark != buf) {
int32_t val = 0;
static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
@@ -54,18 +52,154 @@ static const char *NdbEventMeta_parse_json_table(flatcc_json_parser_t *ctx, cons
if (buf == mark || buf == end) goto failed;
}
if (val != INT32_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
- if (!(pval = flatcc_builder_table_add(ctx->ctx, 0, 4, 4))) goto failed;
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 2, 4, 4))) goto failed;
flatbuffers_int32_write_to_pe(pval, val);
}
} else {
- buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ goto pfguard1;
}
- } else { /* "_at" */
+ } else { /* "quotes" */
+ goto pfguard1;
+ } /* "quotes" */
+ goto endpfguard1;
+pfguard1:
+ if (w == 0x7265616374696f6e) { /* descend "reaction" */
+ buf += 8;
+ w = flatcc_json_parser_symbol_part(buf, end);
+ if ((w & 0xff00000000000000) == 0x7300000000000000) { /* "s" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 1);
+ if (mark != buf) {
+ int32_t val = 0;
+ static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
+ meta_local_json_parser_enum,
+ meta_global_json_parser_enum, 0 };
+ buf = flatcc_json_parser_int32(ctx, (mark = buf), end, &val);
+ if (mark == buf) {
+ buf = flatcc_json_parser_symbolic_int32(ctx, (mark = buf), end, symbolic_parsers, &val);
+ if (buf == mark || buf == end) goto failed;
+ }
+ if (val != INT32_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 1, 4, 4))) goto failed;
+ flatbuffers_int32_write_to_pe(pval, val);
+ }
+ } else {
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ }
+ } else { /* "s" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* "s" */
+ } else { /* descend "reaction" */
buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
- } /* "_at" */
- } else { /* descend "received" */
- buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
- } /* descend "received" */
+ } /* descend "reaction" */
+endpfguard1:
+ (void)0;
+ } else { /* branch "received" */
+ if (w < 0x7265706f73747300) { /* branch "reposts" */
+ if (w == 0x7265636569766564) { /* descend "received" */
+ buf += 8;
+ w = flatcc_json_parser_symbol_part(buf, end);
+ if ((w & 0xffffff0000000000) == 0x5f61740000000000) { /* "_at" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 3);
+ if (mark != buf) {
+ int32_t val = 0;
+ static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
+ meta_local_json_parser_enum,
+ meta_global_json_parser_enum, 0 };
+ buf = flatcc_json_parser_int32(ctx, (mark = buf), end, &val);
+ if (mark == buf) {
+ buf = flatcc_json_parser_symbolic_int32(ctx, (mark = buf), end, symbolic_parsers, &val);
+ if (buf == mark || buf == end) goto failed;
+ }
+ if (val != INT32_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 0, 4, 4))) goto failed;
+ flatbuffers_int32_write_to_pe(pval, val);
+ }
+ } else {
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ }
+ } else { /* "_at" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* "_at" */
+ } else { /* descend "received" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* descend "received" */
+ } else { /* branch "reposts" */
+ if (w < 0x7a61705f746f7461) { /* branch "zap_tota" */
+ if ((w & 0xffffffffffffff00) == 0x7265706f73747300) { /* "reposts" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 7);
+ if (mark != buf) {
+ int32_t val = 0;
+ static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
+ meta_local_json_parser_enum,
+ meta_global_json_parser_enum, 0 };
+ buf = flatcc_json_parser_int32(ctx, (mark = buf), end, &val);
+ if (mark == buf) {
+ buf = flatcc_json_parser_symbolic_int32(ctx, (mark = buf), end, symbolic_parsers, &val);
+ if (buf == mark || buf == end) goto failed;
+ }
+ if (val != INT32_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 3, 4, 4))) goto failed;
+ flatbuffers_int32_write_to_pe(pval, val);
+ }
+ } else {
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ }
+ } else { /* "reposts" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* "reposts" */
+ } else { /* branch "zap_tota" */
+ if (w == 0x7a61705f746f7461) { /* descend "zap_tota" */
+ buf += 8;
+ w = flatcc_json_parser_symbol_part(buf, end);
+ if ((w & 0xff00000000000000) == 0x6c00000000000000) { /* "l" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 1);
+ if (mark != buf) {
+ int64_t val = 0;
+ static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
+ meta_local_json_parser_enum,
+ meta_global_json_parser_enum, 0 };
+ buf = flatcc_json_parser_int64(ctx, (mark = buf), end, &val);
+ if (mark == buf) {
+ buf = flatcc_json_parser_symbolic_int64(ctx, (mark = buf), end, symbolic_parsers, &val);
+ if (buf == mark || buf == end) goto failed;
+ }
+ if (val != INT64_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 5, 8, 8))) goto failed;
+ flatbuffers_int64_write_to_pe(pval, val);
+ }
+ } else {
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ }
+ } else { /* "l" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* "l" */
+ } else { /* descend "zap_tota" */
+ if ((w & 0xffffffff00000000) == 0x7a61707300000000) { /* "zaps" */
+ buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 4);
+ if (mark != buf) {
+ int32_t val = 0;
+ static flatcc_json_parser_integral_symbol_f *symbolic_parsers[] = {
+ meta_local_json_parser_enum,
+ meta_global_json_parser_enum, 0 };
+ buf = flatcc_json_parser_int32(ctx, (mark = buf), end, &val);
+ if (mark == buf) {
+ buf = flatcc_json_parser_symbolic_int32(ctx, (mark = buf), end, symbolic_parsers, &val);
+ if (buf == mark || buf == end) goto failed;
+ }
+ if (val != INT32_C(0) || (ctx->flags & flatcc_json_parser_f_force_add)) {
+ if (!(pval = flatcc_builder_table_add(ctx->ctx, 4, 4, 4))) goto failed;
+ flatbuffers_int32_write_to_pe(pval, val);
+ }
+ } else {
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ }
+ } else { /* "zaps" */
+ buf = flatcc_json_parser_unmatched_symbol(ctx, buf, end);
+ } /* "zaps" */
+ } /* descend "zap_tota" */
+ } /* branch "zap_tota" */
+ } /* branch "reposts" */
+ } /* branch "received" */
buf = flatcc_json_parser_object_end(ctx, buf, end, &more);
}
if (ctx->error) goto failed;
diff --git a/nostrdb/bindings/c/meta_reader.h b/nostrdb/bindings/c/meta_reader.h
@@ -47,6 +47,11 @@ __flatbuffers_offset_vec_at(NdbEventMeta_table_t, vec, i, 0)
__flatbuffers_table_as_root(NdbEventMeta)
__flatbuffers_define_scalar_field(0, NdbEventMeta, received_at, flatbuffers_int32, int32_t, INT32_C(0))
+__flatbuffers_define_scalar_field(1, NdbEventMeta, reactions, flatbuffers_int32, int32_t, INT32_C(0))
+__flatbuffers_define_scalar_field(2, NdbEventMeta, quotes, flatbuffers_int32, int32_t, INT32_C(0))
+__flatbuffers_define_scalar_field(3, NdbEventMeta, reposts, flatbuffers_int32, int32_t, INT32_C(0))
+__flatbuffers_define_scalar_field(4, NdbEventMeta, zaps, flatbuffers_int32, int32_t, INT32_C(0))
+__flatbuffers_define_scalar_field(5, NdbEventMeta, zap_total, flatbuffers_int64, int64_t, INT64_C(0))
#include "flatcc_epilogue.h"
diff --git a/nostrdb/bindings/c/meta_verifier.h b/nostrdb/bindings/c/meta_verifier.h
@@ -15,6 +15,11 @@ static int NdbEventMeta_verify_table(flatcc_table_verifier_descriptor_t *td)
{
int ret;
if ((ret = flatcc_verify_field(td, 0, 4, 4) /* received_at */)) return ret;
+ if ((ret = flatcc_verify_field(td, 1, 4, 4) /* reactions */)) return ret;
+ if ((ret = flatcc_verify_field(td, 2, 4, 4) /* quotes */)) return ret;
+ if ((ret = flatcc_verify_field(td, 3, 4, 4) /* reposts */)) return ret;
+ if ((ret = flatcc_verify_field(td, 4, 4, 4) /* zaps */)) return ret;
+ if ((ret = flatcc_verify_field(td, 5, 8, 8) /* zap_total */)) return ret;
return flatcc_verify_ok;
}
diff --git a/nostrdb/bindings/swift/NdbMeta.swift b/nostrdb/bindings/swift/NdbMeta.swift
@@ -0,0 +1,71 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+// swiftlint:disable all
+// swiftformat:disable all
+
+import FlatBuffers
+
+public struct NdbEventMeta: FlatBufferObject, Verifiable {
+
+ static func validateVersion() { FlatBuffersVersion_23_5_26() }
+ public var __buffer: ByteBuffer! { return _accessor.bb }
+ private var _accessor: Table
+
+ private init(_ t: Table) { _accessor = t }
+ public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) }
+
+ private enum VTOFFSET: VOffset {
+ case receivedAt = 4
+ case reactions = 6
+ case quotes = 8
+ case reposts = 10
+ case zaps = 12
+ case zapTotal = 14
+ var v: Int32 { Int32(self.rawValue) }
+ var p: VOffset { self.rawValue }
+ }
+
+ public var receivedAt: Int32 { let o = _accessor.offset(VTOFFSET.receivedAt.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) }
+ public var reactions: Int32 { let o = _accessor.offset(VTOFFSET.reactions.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) }
+ public var quotes: Int32 { let o = _accessor.offset(VTOFFSET.quotes.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) }
+ public var reposts: Int32 { let o = _accessor.offset(VTOFFSET.reposts.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) }
+ public var zaps: Int32 { let o = _accessor.offset(VTOFFSET.zaps.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) }
+ public var zapTotal: Int64 { let o = _accessor.offset(VTOFFSET.zapTotal.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int64.self, at: o) }
+ public static func startNdbEventMeta(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 6) }
+ public static func add(receivedAt: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: receivedAt, def: 0, at: VTOFFSET.receivedAt.p) }
+ public static func add(reactions: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: reactions, def: 0, at: VTOFFSET.reactions.p) }
+ public static func add(quotes: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: quotes, def: 0, at: VTOFFSET.quotes.p) }
+ public static func add(reposts: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: reposts, def: 0, at: VTOFFSET.reposts.p) }
+ public static func add(zaps: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: zaps, def: 0, at: VTOFFSET.zaps.p) }
+ public static func add(zapTotal: Int64, _ fbb: inout FlatBufferBuilder) { fbb.add(element: zapTotal, def: 0, at: VTOFFSET.zapTotal.p) }
+ public static func endNdbEventMeta(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
+ public static func createNdbEventMeta(
+ _ fbb: inout FlatBufferBuilder,
+ receivedAt: Int32 = 0,
+ reactions: Int32 = 0,
+ quotes: Int32 = 0,
+ reposts: Int32 = 0,
+ zaps: Int32 = 0,
+ zapTotal: Int64 = 0
+ ) -> Offset {
+ let __start = NdbEventMeta.startNdbEventMeta(&fbb)
+ NdbEventMeta.add(receivedAt: receivedAt, &fbb)
+ NdbEventMeta.add(reactions: reactions, &fbb)
+ NdbEventMeta.add(quotes: quotes, &fbb)
+ NdbEventMeta.add(reposts: reposts, &fbb)
+ NdbEventMeta.add(zaps: zaps, &fbb)
+ NdbEventMeta.add(zapTotal: zapTotal, &fbb)
+ return NdbEventMeta.endNdbEventMeta(&fbb, start: __start)
+ }
+
+ public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable {
+ var _v = try verifier.visitTable(at: position)
+ try _v.visit(field: VTOFFSET.receivedAt.p, fieldName: "receivedAt", required: false, type: Int32.self)
+ try _v.visit(field: VTOFFSET.reactions.p, fieldName: "reactions", required: false, type: Int32.self)
+ try _v.visit(field: VTOFFSET.quotes.p, fieldName: "quotes", required: false, type: Int32.self)
+ try _v.visit(field: VTOFFSET.reposts.p, fieldName: "reposts", required: false, type: Int32.self)
+ try _v.visit(field: VTOFFSET.zaps.p, fieldName: "zaps", required: false, type: Int32.self)
+ try _v.visit(field: VTOFFSET.zapTotal.p, fieldName: "zapTotal", required: false, type: Int64.self)
+ _v.finish()
+ }
+}
+