picofuse

string.h
Go to the documentation of this file.
1 
24 #pragma once
25 #include <picofuse/sys.h>
26 #include <stdbool.h>
27 #include <stddef.h>
28 #include <stdint.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
35 // METHODS
36 
43 extern size_t sys_string_bytes(const char *str);
44 
51 extern size_t sys_string_runes(const char *str);
52 
61 extern ptrdiff_t sys_string_compare(const char *a, const char *b);
62 
69 extern char *sys_string_to_upper(char *str);
70 
77 extern char *sys_string_to_lower(char *str);
78 
85 extern char *sys_string_trimspace(char *str);
86 
94 extern char *sys_string_trimprefix(char *s, const char *prefix);
95 
104 extern char *sys_string_trimsuffix(char *s, const char *suffix);
105 
114 extern bool sys_string_hasprefix(const char *s, const char *prefix);
115 
124 extern bool sys_string_hassuffix(const char *s, const char *suffix);
125 
135 extern ptrdiff_t sys_string_contains(const char *s, const char *substr);
136 
145 extern sys_iostream_t *sys_string_read(const char *str);
146 
169 extern sys_iostream_t *sys_string_open(char *buf, size_t cap);
170 
172 // PARSING
173 
194 extern bool sys_string_parse_escape(const char *str, size_t len, rune_t *rune);
195 
207 extern bool sys_string_parse_bool(const char *str, bool *out);
208 
237 extern ptrdiff_t sys_string_parse_quoted(const char *str, size_t len, char *out,
238  size_t cap);
239 
260 extern bool sys_string_parse_int32(const char *str, size_t len, int32_t *value);
261 
277 extern bool sys_string_parse_int64(const char *str, size_t len, int64_t *value);
278 
296 extern bool sys_string_parse_uint32(const char *str, size_t len,
297  uint32_t *value);
298 
314 extern bool sys_string_parse_uint64(const char *str, size_t len,
315  uint64_t *value);
316 
340 extern bool sys_string_parse_float32(const char *str, size_t len, float *value);
341 
359 extern bool sys_string_parse_float64(const char *str, size_t len,
360  double *value);
361 
363 
364 #ifdef __cplusplus
365 }
366 #endif
bool sys_string_parse_int32(const char *str, size_t len, int32_t *value)
Parse a signed 32-bit integer.
int32_t rune_t
A single decoded Unicode code point.
Definition: rune.h:28
bool sys_string_parse_float32(const char *str, size_t len, float *value)
Parse a 32-bit floating-point number.
size_t sys_string_bytes(const char *str)
Return the length of a null-terminated string, in bytes.
char * sys_string_trimsuffix(char *s, const char *suffix)
Remove suffix from the end of s, if present.
ptrdiff_t sys_string_contains(const char *s, const char *substr)
Find the first byte offset where substr occurs within s.
char * sys_string_trimprefix(char *s, const char *prefix)
Remove prefix from the start of s, if present.
bool sys_string_hasprefix(const char *s, const char *prefix)
Reports whether s begins with prefix.
System abstraction headers and process lifecycle hooks.
bool sys_string_parse_float64(const char *str, size_t len, double *value)
Parse a 64-bit floating-point number.
ptrdiff_t sys_string_compare(const char *a, const char *b)
Compare two null-terminated strings byte by byte.
struct sys_iostream_t sys_iostream_t
An opaque byte stream.
Definition: io.h:70
char * sys_string_to_lower(char *str)
Convert a string to lowercase in place.
size_t sys_string_runes(const char *str)
Count the runes in a null-terminated UTF-8 string.
bool sys_string_hassuffix(const char *s, const char *suffix)
Reports whether s ends with suffix.
char * sys_string_trimspace(char *str)
Trim leading and trailing whitespace from a string in place.
bool sys_string_parse_uint32(const char *str, size_t len, uint32_t *value)
Parse an unsigned 32-bit integer.
bool sys_string_parse_uint64(const char *str, size_t len, uint64_t *value)
Parse an unsigned 64-bit integer.
bool sys_string_parse_int64(const char *str, size_t len, int64_t *value)
Parse a signed 64-bit integer.
bool sys_string_parse_bool(const char *str, bool *out)
Parse "true" or "false" into a bool.
bool sys_string_parse_escape(const char *str, size_t len, rune_t *rune)
Decode a JSON-style backslash escape sequence into the rune it denotes.
char * sys_string_to_upper(char *str)
Convert a string to uppercase in place.
sys_iostream_t * sys_string_read(const char *str)
Wrap a string in a read-only stream.
ptrdiff_t sys_string_parse_quoted(const char *str, size_t len, char *out, size_t cap)
Decode a quoted string into its unescaped content.
sys_iostream_t * sys_string_open(char *buf, size_t cap)
Open a read/write stream backed by a caller-provided mutable buffer.