#pragma once #include "url.h" #include #include #include typedef struct lm_pkg_file { char *path; char *hash; } lm_pkg_file_t; typedef struct lm_pkg_path { char *archive; char *signature; } lm_pkg_path_t; typedef struct lm_pkg { struct lm_pkg *next; lm_pkg_path_t paths; char *name; char *desc; char **depends; char **keeps; char *version; size_t size; } lm_pkg_t; typedef struct lm_pool_info { char *maintainer; char *pubkey; ssize_t size; } lm_pool_info_t; typedef struct lm_pool_path { char *info_file; char *list_file; char *list_dir; char *dir; } lm_pool_path_t; typedef struct lm_pool { struct lm_pool *next; lm_pool_info_t info; lm_pool_path_t paths; lm_url_t url; lm_pkg_t *pkg; bool available; char *name; } lm_pool_t; typedef struct lm_ctx { lm_pool_t *pools; // pool list char *root; // root path for package installtion char *temp; // temp path char *data; // package database path const char *version; // libmp version (read-only) } lm_ctx_t;