diff options
| author | 2026-02-21 23:32:31 +0000 | |
|---|---|---|
| committer | 2026-02-21 23:32:31 +0000 | |
| commit | 42d4c659063db0e42813bc5708e687ed8da7c133 (patch) | |
| tree | 1d926d4cfe62259b2f3e694fbf67aee5bbd46c08 /include/cmmm | |
| download | string-view-42d4c659063db0e42813bc5708e687ed8da7c133.tar.gz | |
add implementation
Diffstat (limited to 'include/cmmm')
| -rw-r--r-- | include/cmmm/string-view.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/cmmm/string-view.h b/include/cmmm/string-view.h new file mode 100644 index 0000000..ef7a40c --- /dev/null +++ b/include/cmmm/string-view.h | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | // include/cmmm/string-view.h --- simple string view library | ||
| 2 | #ifndef INCLUDED__CMMM__STRING_VIEW__H | ||
| 3 | #define INCLUDED__CMMM__STRING_VIEW__H | ||
| 4 | |||
| 5 | // #define CMMM__STRING_VIEW__STRIP_VENDOR | ||
| 6 | // #define CMMM__STRING_VIEW__SHORT_NAMESPACE | ||
| 7 | |||
| 8 | #define CMMM__STRING_VIEW__LENGTH(SV) ((SV).end - (SV).begin) | ||
| 9 | |||
| 10 | #define CMMM__STRING_VIEW__FMT "%.*s" | ||
| 11 | #define CMMM__STRING_VIEW__FMTA(SV) (int) CMMM__STRING_VIEW__LENGTH (SV), (SV).begin | ||
| 12 | |||
| 13 | struct cmmm__string_view { | ||
| 14 | const char *begin; | ||
| 15 | const char *end; | ||
| 16 | }; | ||
| 17 | |||
| 18 | #ifdef CMMM__STRING_VIEW__SHORT_NAMESPACE | ||
| 19 | #define CMMM__SV_STRIP_VENDOR CMMM__STRING_VIEW__STRIP_VENDOR | ||
| 20 | |||
| 21 | #define CMMM__SV_LENGTH CMMM__STRING_VIEW__LENGTH | ||
| 22 | |||
| 23 | #define CMMM__SV_FMT CMMM__STRING_VIEW__FMT | ||
| 24 | #define CMMM__SV_FMTA CMMM__STRING_VIEW__FMTA | ||
| 25 | |||
| 26 | #define string_view cmmm__string_view | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #ifdef CMMM__STRING_VIEW__STRIP_VENDOR | ||
| 30 | #define STRING_VIEW__STRIP_VENDOR CMMM__STRING_VIEW__STRIP_VENDOR | ||
| 31 | |||
| 32 | #define STRING_VIEW__LENGTH CMMM__STRING_VIEW__LENGTH | ||
| 33 | |||
| 34 | #define STRING_VIEW__FMT CMMM__STRING_VIEW__FMT | ||
| 35 | #define STRING_VIEW__FMTA CMMM__STRING_VIEW__FMTA | ||
| 36 | |||
| 37 | #ifdef CMMM__STRING_VIEW__SHORT_NAMESPACE | ||
| 38 | #define SV_STRIP_VENDOR CMMM__STRING_VIEW__STRIP_VENDOR | ||
| 39 | |||
| 40 | #define SV_LENGTH CMMM__STRING_VIEW__LENGTH | ||
| 41 | |||
| 42 | #define SV_FMT CMMM__STRING_VIEW__FMT | ||
| 43 | #define SV_FMTA CMMM__STRING_VIEW__FMTA | ||
| 44 | #endif | ||
| 45 | #endif | ||
| 46 | |||
| 47 | #endif // INCLUDED__CMMM__STRING_VIEW__H | ||
| 48 | // include/cmmm/string-view.h ends here | ||
