#ifndef VIETER_PACKAGE
#define VIETER_PACKAGE

typedef struct vieter_package vieter_package;

typedef enum vieter_package_error {
  vieter_package_ok = 0,
  vieter_package_unarchive_error = 1,
  vieter_package_stat_error = 2
} vieter_package_error;

/*
 * Allocate an empty package
 */
vieter_package *vieter_package_init();

/*
 * Parse package file into something usable by libvieter.
 */
vieter_package_error vieter_package_read_archive(vieter_package *pkg,
                                                 const char *pkg_path);

/*
 * Deallocate a package.
 */
void vieter_package_free(vieter_package **ptp);

/*
 * Create string that will become the package's desc file.
 */
char *vieter_package_to_description(vieter_package *pkg);

#endif