refactor: restructure core module into domain-driven packages with 2672 insertions and 2220 deletions
Build and run rrex2 / build (push) Failing after 41s

Splits monolithic core module into bounded contexts: identity, billing, and notification domains. Moves entity definitions, repository interfaces, and service implementations into separate packages. Updates import paths across 25 files to align with new package structure. Removes cross-domain coupling by extracting shared value objects into a common package.
This commit is contained in:
2025-03-20 03:16:06 +00:00
parent d7066154a9
commit 835662a76a
91 changed files with 27033 additions and 2220 deletions
+67
View File
@@ -0,0 +1,67 @@
#include "rtree.h"
#include "rbench.h"
#include "rtest.h"
#include <string.h>
typedef struct rtree_bench_data_t {
rtree_t *rtree;
char *value;
} rtree_bench_data_t;
void rtree_bench_f() {
rtree_bench_data_t *bd = rbf->data;
if (rbf->first) {
static rtree_bench_data_t bds;
bds.rtree = rtree_new();
bds.value = strdup(rgenerate_key());
rbf->data = &bds;
bd = rbf->data;
}
char *key = rgenerate_key();
rtree_set(bd->rtree, key, bd->value);
char *value = (char *)rtree_get(bd->rtree, key);
rassert(!strcmp(value, bd->value));
if (rbf->last) {
free(bd->value);
rtree_free(bd->rtree);
}
}
void rtree_bench(long item_count) {
rbench_t *b = rbench_new();
b->stdout = false;
b->silent = true;
b->add_function(b, "random_key", "rtree_rw", rtree_bench_f);
b->execute(b, 1000000);
// rassert(rnsecs_to_msecs(b->execution_time) < 700); // faster than 700ms
printf("r/w %ld items and deallocated in %s\n", item_count, format_time(b->execution_time));
rbench_free(b);
}
int main() {
rtest_banner("rtree");
rtree_t *rtree = rtree_new();
// Test new object default valuess
rtest_banner("New object default values");
rtest_assert(rtree->c == 0);
rtest_assert(rtree->next == NULL);
rtest_assert(rtree->children == NULL);
rtest_assert(rtree->data == NULL);
// Test set
rtest_banner("Set");
rtree_set(rtree, "a", "data");
rtest_assert(rtree->c == 'a');
rtest_assert(!strcmp(rtree->data, "data"));
// Second element should be filled
rtree_set(rtree, "b", "data2");
rtest_assert(rtree->next->c == 'b');
rtest_assert(!strcmp(rtree->next->data, "data2"));
// First child of second element should be filled
rtree_set(rtree, "bc", "data3");
rtest_assert(rtree->next->children->c == 'c');
rtest_assert(!strcmp(rtree->next->children->data, "data3"));
rtree_free(rtree);
rtest_banner("Benchmark");
rtree_bench(1000000);
return rtest_end("");
}