Serializing and de serializing events
This commit is contained in:
@@ -237,43 +237,35 @@ bool StartsWith(String16 a, String16 start, unsigned ignore_case = false) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// chop this - :324
|
||||
String16 ChopNumberEx(String16 *string) {
|
||||
String16 col = {};
|
||||
for (int64_t i = string->len - 1; i >= 0; i -= 1) {
|
||||
String16 SkipNumberEx(String16 *string) {
|
||||
String16 col = {string->data, 0};
|
||||
for (int64_t i = 0; i < string->len; i += 1) {
|
||||
if (IsDigit(string->data[i])) {
|
||||
col.data = string->data + i;
|
||||
col.len += 1;
|
||||
} else if (string->data[i] == L':') {
|
||||
break;
|
||||
} else {
|
||||
return {};
|
||||
break;
|
||||
}
|
||||
}
|
||||
*string = Chop(*string, col.len + 1);
|
||||
*string = Skip(*string, col.len);
|
||||
return col;
|
||||
}
|
||||
|
||||
Int ChopNumber(String16 *string) {
|
||||
Scratch scratch;
|
||||
String16 col = ChopNumberEx(string);
|
||||
Int SkipNumber(String16 *string) {
|
||||
String16 col = SkipNumberEx(string);
|
||||
if (col.len == 0) return -1;
|
||||
String num_string = ToString(scratch, col);
|
||||
Int result = strtoll(num_string.data, NULL, 10) - 1;
|
||||
Scratch scratch;
|
||||
String num_string = ToString(scratch, col);
|
||||
Int result = strtoll(num_string.data, NULL, 10);
|
||||
return result;
|
||||
}
|
||||
|
||||
String16 ChopWhitespace(String16 *string) {
|
||||
String16 new_string = *string;
|
||||
String16 whitespace = {string->data, 0};
|
||||
for (int64_t i = 0; i < string->len; i += 1) {
|
||||
if (IsWhitespace(string->data[i])) {
|
||||
new_string = Skip(new_string, 1);
|
||||
whitespace.len += 1;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
String16 SkipUntil(String16 *string, String16 str) {
|
||||
String16 begin = *string;
|
||||
begin.len = 0;
|
||||
for (Int i = 0; string->len; begin.len += 1) {
|
||||
String16 match = GetPrefix(*string, str.len);
|
||||
if (StartsWith(match, str)) break;
|
||||
*string = Skip(*string, 1);
|
||||
}
|
||||
*string = new_string;
|
||||
return whitespace;
|
||||
}
|
||||
return begin;
|
||||
}
|
||||
Reference in New Issue
Block a user