j-matrix-twin / worm_c_binding.c
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/j-matrix-twin
efc74bf verified
Raw History Blame Contribute Delete
1.3 kB
// Copyright © 2026 Sovereign Source Foundation. All rights reserved.
// Licensed under Sovereign Source License + Business Source License 1.1.
// Change Date: December 31, 2027 — after which, licensed under AGPL-3.0-only.
// See LICENSE for complete terms.
/*
WORM C Binding for Nim j-matrix-twin
Stub implementation. Real WORM library will be linked at build time.
*/
#include <stdint.h>
#include <stddef.h>
#include <stdlib.h>
typedef struct {
uint8_t writer_id[32];
} WormWriter;
void *worm_init_writer(const uint8_t *writer_id)
{
WormWriter *w = malloc(sizeof(WormWriter));
if (!w) return NULL;
for (int i = 0; i < 32; i++) {
w->writer_id[i] = writer_id ? writer_id[i] : 0;
}
return w;
}
void *worm_create_record(
void *writer,
const uint8_t *stream_id,
const uint8_t *payload_hash)
{
if (!writer || !stream_id || !payload_hash) {
return NULL;
}
/* Stub: return non-NULL to indicate record created */
return (void *)0x1;
}
int32_t worm_append_local(void *writer, void *record)
{
if (!writer || !record) {
return 1; /* error */
}
/* Stub: return 0 to indicate success */
return 0;
}
void worm_free(void *obj)
{
if (obj && obj != (void *)0x1) {
free(obj);
}
}