/* * pkg - mkpkg database reader (read-only) * https://rawnix.org * * Copyright (c) 2025 zorz@gmx.com * SPDX-License-Identifier: BSD-2-Clause */ #ifndef PKGDB_H #define PKGDB_H #include "pkg.h" /* Installed package info */ typedef struct { char *name; char *version; } installed_pkg_t; /* Hash table entry */ typedef struct pkgdb_entry { char *key; installed_pkg_t *pkg; struct pkgdb_entry *next; } pkgdb_entry_t; /* Package database */ typedef struct { pkgdb_entry_t **buckets; size_t bucket_count; size_t size; char *path; } pkgdb_t; /* Database operations */ pkgdb_t *pkgdb_open(const char *root); void pkgdb_close(pkgdb_t *db); bool pkgdb_installed(pkgdb_t *db, const char *name); installed_pkg_t *pkgdb_find(pkgdb_t *db, const char *name); strarray_t *pkgdb_list(pkgdb_t *db); #endif /* PKGDB_H */