getChunk method

Future<DocumentChunk?> getChunk(
  1. int chunkId
)

Fetches a single chunk by id. Returns null if not found.

Implementation

Future<DocumentChunk?> getChunk(int chunkId) async {
  _ensureOpen();
  final out = malloc<VDBChunk>();
  try {
    final ok = bindings.getChunk(_db, chunkId, out);
    if (ok == 0) return null;
    final c = out.ref;
    final chunk = DocumentChunk(
      chunkId: c.chunkId,
      text: c.text == nullptr ? '' : c.text.toDartString(),
      subject: subjectName(c.subject),
      grade: c.grade,
      chapter: c.chapter,
      page: c.page,
      language: languageName(c.language),
      bookId: c.bookId,
      tokenCount: c.tokenCount,
    );
    bindings.chunkFree(out);
    return chunk;
  } finally {
    malloc.free(out);
  }
}