annotate foosdk/sdk/pfc/string-part.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 namespace pfc {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 struct string_part_ref {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 const char* m_ptr;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 t_size m_len;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 static string_part_ref make(const char* ptr, t_size len);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 string_part_ref substring(t_size base) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 string_part_ref substring(t_size base, t_size len) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 static string_part_ref make(const char* str);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 bool equals(string_part_ref other) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 bool equals(const char* str) const;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 inline string_part_ref string_part(const char* ptr, t_size len) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 string_part_ref val = { ptr, len }; return val;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 template<typename T> static string_part_ref stringToRef(T const& val) { return string_part(stringToPtr(val), val.length()); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 inline string_part_ref stringToRef(string_part_ref val) { return val; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 inline string_part_ref stringToRef(const char* val) { return string_part(val, strlen(val)); }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 }