|
|
@@ -14,25 +14,6 @@ typedef struct pkpy_SStream {
|
|
|
c11_vector data;
|
|
|
} pkpy_SStream;
|
|
|
|
|
|
-void pkpy_SStream__ctor(pkpy_SStream* self);
|
|
|
-void pkpy_SStream__dtor(pkpy_SStream* self);
|
|
|
-
|
|
|
-void pkpy_SStream__write_int(pkpy_SStream* self, int);
|
|
|
-void pkpy_SStream__write_int64(pkpy_SStream* self, int64_t);
|
|
|
-void pkpy_SStream__write_float(pkpy_SStream* self, float, int precision);
|
|
|
-void pkpy_SStream__write_double(pkpy_SStream* self, double, int precision);
|
|
|
-void pkpy_SStream__write_char(pkpy_SStream* self, char);
|
|
|
-void pkpy_SStream__write_Str(pkpy_SStream* self, const pkpy_Str*);
|
|
|
-void pkpy_SStream__write_sv(pkpy_SStream* self, c11_string);
|
|
|
-void pkpy_SStream__write_cstr(pkpy_SStream* self, const char*);
|
|
|
-void pkpy_SStream__write_cstrn(pkpy_SStream* self, const char*, int);
|
|
|
-void pkpy_SStream__write_hex(pkpy_SStream* self, unsigned char, bool non_zero);
|
|
|
-void pkpy_SStream__write_ptr(pkpy_SStream* self, void*);
|
|
|
-
|
|
|
-// Submit the stream and return the final string. The stream becomes invalid after this call
|
|
|
-pkpy_Str pkpy_SStream__submit(pkpy_SStream* self);
|
|
|
-
|
|
|
-#ifndef __cplusplus
|
|
|
typedef struct pkpy_AnyStr {
|
|
|
int type;
|
|
|
union {
|
|
|
@@ -48,8 +29,6 @@ typedef struct pkpy_AnyStr {
|
|
|
};
|
|
|
} pkpy_AnyStr;
|
|
|
|
|
|
-void pkpy_SStream__write_any(pkpy_SStream* self, const char* fmt, const pkpy_AnyStr* args, int n);
|
|
|
-
|
|
|
inline pkpy_AnyStr pkpy_AnyStr__int(int x) { return (pkpy_AnyStr){.type = 1, ._int = x}; }
|
|
|
inline pkpy_AnyStr pkpy_AnyStr__int64(int64_t x) { return (pkpy_AnyStr){.type = 2, ._int64 = x}; }
|
|
|
inline pkpy_AnyStr pkpy_AnyStr__float(float x) { return (pkpy_AnyStr){.type = 3, ._float = x}; }
|
|
|
@@ -60,6 +39,25 @@ inline pkpy_AnyStr pkpy_AnyStr__sv(c11_string x) { return (pkpy_AnyStr){.type =
|
|
|
inline pkpy_AnyStr pkpy_AnyStr__cstr(const char* x) { return (pkpy_AnyStr){.type = 8, ._cstr = x}; }
|
|
|
inline pkpy_AnyStr pkpy_AnyStr__ptr(void* x) { return (pkpy_AnyStr){.type = 9, ._ptr = x}; }
|
|
|
|
|
|
+void pkpy_SStream__ctor(pkpy_SStream* self);
|
|
|
+void pkpy_SStream__dtor(pkpy_SStream* self);
|
|
|
+
|
|
|
+void pkpy_SStream__write_int(pkpy_SStream* self, int);
|
|
|
+void pkpy_SStream__write_int64(pkpy_SStream* self, int64_t);
|
|
|
+void pkpy_SStream__write_float(pkpy_SStream* self, float, int precision);
|
|
|
+void pkpy_SStream__write_double(pkpy_SStream* self, double, int precision);
|
|
|
+void pkpy_SStream__write_char(pkpy_SStream* self, char);
|
|
|
+void pkpy_SStream__write_Str(pkpy_SStream* self, const pkpy_Str*);
|
|
|
+void pkpy_SStream__write_sv(pkpy_SStream* self, c11_string);
|
|
|
+void pkpy_SStream__write_cstr(pkpy_SStream* self, const char*);
|
|
|
+void pkpy_SStream__write_cstrn(pkpy_SStream* self, const char*, int);
|
|
|
+void pkpy_SStream__write_hex(pkpy_SStream* self, unsigned char, bool non_zero);
|
|
|
+void pkpy_SStream__write_ptr(pkpy_SStream* self, void*);
|
|
|
+void pkpy_SStream__write_any(pkpy_SStream* self, const char* fmt, const pkpy_AnyStr* args, int n);
|
|
|
+
|
|
|
+// Submit the stream and return the final string. The stream becomes invalid after this call
|
|
|
+pkpy_Str pkpy_SStream__submit(pkpy_SStream* self);
|
|
|
+
|
|
|
#define pkpy__anystr(x) _Generic((x), \
|
|
|
int: pkpy_AnyStr__int, \
|
|
|
int64_t: pkpy_AnyStr__int64, \
|
|
|
@@ -81,7 +79,6 @@ inline pkpy_AnyStr pkpy_AnyStr__ptr(void* x) { return (pkpy_AnyStr){.type = 9, .
|
|
|
#define pkpy__anystr_list(...) pkpy__anystr_list_dispatcher(__VA_ARGS__)(__VA_ARGS__)
|
|
|
|
|
|
#define pkpy_SStream__write(self, fmt, ...) pkpy_SStream__write_any(self, fmt, pkpy__anystr_list(__VA_ARGS__))
|
|
|
-#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
}
|