htils
1
A small set of utilities for C programming.
Toggle main menu visibility
Loading...
Searching...
No Matches
cli.h
Go to the documentation of this file.
1
#ifndef HTILS_CLI_H
2
#define HTILS_CLI_H
3
4
/***********************************/
5
6
#include <
htils/arena.h
>
7
#include <
htils/basictypes.h
>
8
#include <
htils/darray.h
>
9
#include <
htils/string.h
>
10
11
/***********************************/
12
23
typedef
struct
cli_option
{
24
string
*
name
;
25
string
*
desc
;
26
string
*
cli_short
;
27
string
*
cli_long
;
28
u8
cli_short_short
;
29
b32
has_arg
;
30
}
htils_cli_option_t
;
31
50
typedef
struct
cli
{
51
i64
argc
;
52
cstr
**
argv
;
53
54
string
*
cli_name
;
55
string
*
cli_desc
;
56
htils_cli_option_t
**
options
;
57
58
arena_t
*
arena
;
59
void (*
usage
)(
struct
cli
*
cli
,
cstr
**
argv
);
60
61
i64
optidx
;
62
i16
next_char
;
63
cstr
*
optarg
;
64
i16
optopt
;
65
}
htils_cli_t
;
66
85
htils_cli_t
*
cli_new
(
arena_t
*
arena
,
i64
argc
,
cstr
**
argv
,
const
string
*name,
86
const
string
*desc);
87
88
//
89
//
90
//
91
106
void
cli_add
(
htils_cli_t
*
cli
,
const
string
*name,
const
string
*desc,
107
b32
requires_arg);
108
109
//
110
//
111
//
112
127
i16
parse_cli
(
htils_cli_t
*
cli
);
128
129
#endif
// !HTILS_CLI_H
arena.h
arena_t
struct arena arena_t
An atomic arena.
basictypes.h
b32
u32 b32
Definition
basictypes.h:43
i64
int64_t i64
Definition
basictypes.h:34
u8
uint8_t u8
Definition
basictypes.h:13
cstr
char cstr
Definition
basictypes.h:59
i16
int16_t i16
Definition
basictypes.h:28
parse_cli
i16 parse_cli(htils_cli_t *cli)
Parse the next CLI argument.
Definition
cli.c:213
cli_add
void cli_add(htils_cli_t *cli, const string *name, const string *desc, b32 requires_arg)
Add an option to the cli.
Definition
cli.c:181
htils_cli_option_t
struct cli_option htils_cli_option_t
A cli option.
cli_new
htils_cli_t * cli_new(arena_t *arena, i64 argc, cstr **argv, const string *name, const string *desc)
Create a new cli.
Definition
cli.c:194
htils_cli_t
struct cli htils_cli_t
The cli state thats used during parsing.
darray.h
string.h
arena
An atomic arena.
Definition
arena.h:45
cli_option
A cli option.
Definition
cli.h:23
cli_option::cli_short
string * cli_short
Definition
cli.h:26
cli_option::has_arg
b32 has_arg
Definition
cli.h:29
cli_option::cli_short_short
u8 cli_short_short
Definition
cli.h:28
cli_option::desc
string * desc
Definition
cli.h:25
cli_option::cli_long
string * cli_long
Definition
cli.h:27
cli_option::name
string * name
Definition
cli.h:24
cli
The cli state thats used during parsing.
Definition
cli.h:50
cli::optidx
i64 optidx
Definition
cli.h:61
cli::arena
arena_t * arena
Definition
cli.h:58
cli::optopt
i16 optopt
Definition
cli.h:64
cli::usage
void(* usage)(struct cli *cli, cstr **argv)
Definition
cli.h:59
cli::argv
cstr ** argv
Definition
cli.h:52
cli::cli_name
string * cli_name
Definition
cli.h:54
cli::argc
i64 argc
Definition
cli.h:51
cli::optarg
cstr * optarg
Definition
cli.h:63
cli::next_char
i16 next_char
Definition
cli.h:62
cli::options
htils_cli_option_t ** options
Definition
cli.h:56
cli::cli_desc
string * cli_desc
Definition
cli.h:55
include
htils
cli.h
Generated by
1.17.0