blueloveTH 1 рік тому
батько
коміт
e1c706b08f
1 змінених файлів з 22 додано та 19 видалено
  1. 22 19
      include/pocketpy/common/sstream.h

+ 22 - 19
include/pocketpy/common/sstream.h

@@ -14,6 +14,25 @@ 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 {
@@ -29,6 +48,8 @@ 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}; }
@@ -39,25 +60,6 @@ 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, \
@@ -79,6 +81,7 @@ pkpy_Str pkpy_SStream__submit(pkpy_SStream* self);
 #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
 }