PatchworkOS
Loading...
Searching...
No Matches
format.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
stdarg.h
>
4
#include <
stdint.h
>
5
#include <
stdio.h
>
6
7
typedef
enum
8
{
9
FORMAT_MINUS
= (1 << 0),
10
FORMAT_PLUS
= (1 << 1),
11
FORMAT_ALT
= (1 << 2),
12
FORMAT_SPACE
= (1 << 3),
13
FORMAT_ZERO
= (1 << 4),
14
FORMAT_DONE
= (1 << 5),
15
FORMAT_SUPPRESSED
= (1 << 22),
16
FORMAT_CHAR
= (1 << 6),
17
FORMAT_SHORT
= (1 << 7),
18
FORMAT_LONG
= (1 << 8),
19
FORMAT_LLONG
= (1 << 9),
20
FORMAT_INTMAX
= (1 << 10),
21
FORMAT_SIZE
= (1 << 11),
22
FORMAT_PTRDIFF
= (1 << 12),
23
FORMAT_POINTER
= (1 << 13),
24
FORMAT_DOUBLE
= (1 << 14),
25
FORMAT_LDOUBLE
= (1 << 15),
26
FORMAT_LOWER
= (1 << 16),
27
FORMAT_UNSIGNED
= (1 << 17),
28
FORMAT_DECIMAL
= (1 << 18),
29
FORMAT_EXPONENT
= (1 << 19),
30
FORMAT_GENERIC
= (1 << 20),
31
FORMAT_HEXA
= (1 << 21)
32
}
_format_flags_t
;
33
34
typedef
struct
35
{
36
int32_t
base
;
37
_format_flags_t
flags
;
38
uint64_t
maxChars
;
39
uint64_t
totalChars
;
40
uint64_t
currentChars
;
41
char
*
buffer
;
42
uint64_t
width
;
43
int64_t
precision
;
44
FILE
*
stream
;
45
va_list
arg
;
46
}
_format_ctx_t
;
_format_flags_t
_format_flags_t
Definition
format.h:8
FORMAT_DECIMAL
@ FORMAT_DECIMAL
Definition
format.h:28
FORMAT_INTMAX
@ FORMAT_INTMAX
Definition
format.h:20
FORMAT_LOWER
@ FORMAT_LOWER
Definition
format.h:26
FORMAT_DOUBLE
@ FORMAT_DOUBLE
Definition
format.h:24
FORMAT_SPACE
@ FORMAT_SPACE
Definition
format.h:12
FORMAT_DONE
@ FORMAT_DONE
Definition
format.h:14
FORMAT_ZERO
@ FORMAT_ZERO
Definition
format.h:13
FORMAT_PLUS
@ FORMAT_PLUS
Definition
format.h:10
FORMAT_SIZE
@ FORMAT_SIZE
Definition
format.h:21
FORMAT_LDOUBLE
@ FORMAT_LDOUBLE
Definition
format.h:25
FORMAT_CHAR
@ FORMAT_CHAR
Definition
format.h:16
FORMAT_UNSIGNED
@ FORMAT_UNSIGNED
Definition
format.h:27
FORMAT_POINTER
@ FORMAT_POINTER
Definition
format.h:23
FORMAT_EXPONENT
@ FORMAT_EXPONENT
Definition
format.h:29
FORMAT_ALT
@ FORMAT_ALT
Definition
format.h:11
FORMAT_MINUS
@ FORMAT_MINUS
Definition
format.h:9
FORMAT_SHORT
@ FORMAT_SHORT
Definition
format.h:17
FORMAT_LONG
@ FORMAT_LONG
Definition
format.h:18
FORMAT_GENERIC
@ FORMAT_GENERIC
Definition
format.h:30
FORMAT_SUPPRESSED
@ FORMAT_SUPPRESSED
Definition
format.h:15
FORMAT_HEXA
@ FORMAT_HEXA
Definition
format.h:31
FORMAT_LLONG
@ FORMAT_LLONG
Definition
format.h:19
FORMAT_PTRDIFF
@ FORMAT_PTRDIFF
Definition
format.h:22
stdarg.h
va_list
__builtin_va_list va_list
Definition
stdarg.h:9
stdint.h
int32_t
__INT32_TYPE__ int32_t
Definition
stdint.h:14
uint64_t
__UINT64_TYPE__ uint64_t
Definition
stdint.h:17
int64_t
__INT64_TYPE__ int64_t
Definition
stdint.h:16
stdio.h
FILE
Definition
file.h:34
_format_ctx_t
Definition
format.h:35
_format_ctx_t::arg
va_list arg
Definition
format.h:45
_format_ctx_t::precision
int64_t precision
Definition
format.h:43
_format_ctx_t::stream
FILE * stream
Definition
format.h:44
_format_ctx_t::maxChars
uint64_t maxChars
Definition
format.h:38
_format_ctx_t::width
uint64_t width
Definition
format.h:42
_format_ctx_t::flags
_format_flags_t flags
Definition
format.h:37
_format_ctx_t::base
int32_t base
Definition
format.h:36
_format_ctx_t::currentChars
uint64_t currentChars
Definition
format.h:40
_format_ctx_t::buffer
char * buffer
Definition
format.h:41
_format_ctx_t::totalChars
uint64_t totalChars
Definition
format.h:39
src
libstd
common
format.h
Generated by
1.9.8