kpargv.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /** @file kpargv.h
  2. *
  3. * @brief Parsed ARGuments Vector
  4. */
  5. #ifndef _klish_kpargv_h
  6. #define _klish_kpargv_h
  7. #include <faux/list.h>
  8. #include <klish/kentry.h>
  9. typedef struct kpargv_s kpargv_t;
  10. typedef struct kparg_s kparg_t;
  11. typedef faux_list_node_t kpargv_pargs_node_t;
  12. C_DECL_BEGIN
  13. // Parg
  14. kparg_t *kparg_new(kentry_t *entry, const char *value);
  15. void kparg_free(kparg_t *parg);
  16. kentry_t *kparg_entry(const kparg_t *parg);
  17. bool_t kparg_set_value(kparg_t *parg, const char *value);
  18. const char *kparg_value(const kparg_t *parg);
  19. // Pargv
  20. kpargv_t *kpargv_new();
  21. void kpargv_free(kpargv_t *pargv);
  22. faux_list_t *kpargv_pargs(const kpargv_t *pargv);
  23. ssize_t kpargv_pargs_len(const kpargv_t *pargv);
  24. bool_t kpargv_pargs_is_empty(const kpargv_t *pargv);
  25. bool_t kpargv_add_parg(kpargv_t *pargv, kparg_t *parg);
  26. kpargv_pargs_node_t *kpargv_pargs_iter(const kpargv_t *pargv);
  27. kparg_t *kpargv_pargs_each(kpargv_pargs_node_t **iter);
  28. kparg_t *kpargv_pargs_last(const kpargv_t *pargv);
  29. kparg_t *kpargv_entry_exists(const kpargv_t *pargv, const void *entry);
  30. C_DECL_END
  31. #endif // _klish_kpargv_h