diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/pfc/string-part.h	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,24 @@
+#pragma once
+
+namespace pfc {
+	struct string_part_ref {
+		const char* m_ptr;
+		t_size m_len;
+
+
+		static string_part_ref make(const char* ptr, t_size len);
+		string_part_ref substring(t_size base) const;
+		string_part_ref substring(t_size base, t_size len) const;
+		static string_part_ref make(const char* str);
+		bool equals(string_part_ref other) const;
+		bool equals(const char* str) const;
+	};
+
+	inline string_part_ref string_part(const char* ptr, t_size len) {
+		string_part_ref val = { ptr, len }; return val;
+	}
+
+	template<typename T> static string_part_ref stringToRef(T const& val) { return string_part(stringToPtr(val), val.length()); }
+	inline string_part_ref stringToRef(string_part_ref val) { return val; }
+	inline string_part_ref stringToRef(const char* val) { return string_part(val, strlen(val)); }
+}
\ No newline at end of file