mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-29 09:24:33 +00:00
Minimal Dependency Map: Only build what is needed
This commit is contained in:
@@ -14,7 +14,7 @@ typedef struct String {
|
||||
isize len;
|
||||
} String;
|
||||
// NOTE(bill): used for printf style arguments
|
||||
#define LIT(x) (x).len, (x).text
|
||||
#define LIT(x) ((int)(x).len), (x).text
|
||||
|
||||
|
||||
typedef struct String16 {
|
||||
@@ -46,6 +46,11 @@ gb_inline String make_string(char *text) {
|
||||
return make_string(cast(u8 *)cast(void *)text, gb_strlen(text));
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
gb_inline String make_string(char const (&text)[N]) {
|
||||
return make_string(cast(u8 *)cast(void *)text, N-1);
|
||||
}
|
||||
|
||||
gb_inline b32 are_strings_equal(String a, String b) {
|
||||
if (a.len == b.len) {
|
||||
return gb_memcompare(a.text, b.text, a.len) == 0;
|
||||
@@ -117,6 +122,12 @@ bool operator > (String a, String b) { return string_compare(a, b) > 0; }
|
||||
bool operator <=(String a, String b) { return string_compare(a, b) <= 0; }
|
||||
bool operator >=(String a, String b) { return string_compare(a, b) >= 0; }
|
||||
|
||||
template <size_t N> bool operator ==(String a, char const (&b)[N]) { return a == make_string(b); }
|
||||
template <size_t N> bool operator !=(String a, char const (&b)[N]) { return a != make_string(b); }
|
||||
template <size_t N> bool operator ==(char const (&a)[N], String b) { return make_string(a) == b; }
|
||||
template <size_t N> bool operator !=(char const (&a)[N], String b) { return make_string(a) != b; }
|
||||
|
||||
|
||||
|
||||
|
||||
gb_inline isize string_extension_position(String str) {
|
||||
|
||||
Reference in New Issue
Block a user