This commit is contained in:
blueloveTH 2024-06-13 14:41:46 +08:00
parent ca4ebf4ba7
commit 9b72ae7223
3 changed files with 8 additions and 8 deletions

View File

@ -18,7 +18,7 @@ typedef struct pkpy_AnyStr {
int type; int type;
union { union {
int _int; int _int;
int64_t _int64; int64_t _i64;
float _float; float _float;
double _double; double _double;
char _char; char _char;
@ -30,7 +30,7 @@ typedef struct pkpy_AnyStr {
} pkpy_AnyStr; } pkpy_AnyStr;
inline pkpy_AnyStr pkpy_AnyStr__int(int x) { return (pkpy_AnyStr){.type = 1, ._int = x}; } 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__i64(int64_t x) { return (pkpy_AnyStr){.type = 2, ._i64 = x}; }
inline pkpy_AnyStr pkpy_AnyStr__float(float x) { return (pkpy_AnyStr){.type = 3, ._float = x}; } inline pkpy_AnyStr pkpy_AnyStr__float(float x) { return (pkpy_AnyStr){.type = 3, ._float = x}; }
inline pkpy_AnyStr pkpy_AnyStr__double(double x) { return (pkpy_AnyStr){.type = 4, ._double = x}; } inline pkpy_AnyStr pkpy_AnyStr__double(double x) { return (pkpy_AnyStr){.type = 4, ._double = x}; }
inline pkpy_AnyStr pkpy_AnyStr__char(char x) { return (pkpy_AnyStr){.type = 5, ._char = x}; } inline pkpy_AnyStr pkpy_AnyStr__char(char x) { return (pkpy_AnyStr){.type = 5, ._char = x}; }
@ -43,7 +43,7 @@ void pkpy_SStream__ctor(pkpy_SStream* self);
void pkpy_SStream__dtor(pkpy_SStream* self); void pkpy_SStream__dtor(pkpy_SStream* self);
void pkpy_SStream__write_int(pkpy_SStream* self, int); void pkpy_SStream__write_int(pkpy_SStream* self, int);
void pkpy_SStream__write_int64(pkpy_SStream* self, int64_t); void pkpy_SStream__write_i64(pkpy_SStream* self, int64_t);
void pkpy_SStream__write_float(pkpy_SStream* self, float, int precision); 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_double(pkpy_SStream* self, double, int precision);
void pkpy_SStream__write_char(pkpy_SStream* self, char); void pkpy_SStream__write_char(pkpy_SStream* self, char);
@ -60,7 +60,7 @@ pkpy_Str pkpy_SStream__submit(pkpy_SStream* self);
#define pkpy__anystr(x) _Generic((x), \ #define pkpy__anystr(x) _Generic((x), \
int: pkpy_AnyStr__int, \ int: pkpy_AnyStr__int, \
int64_t: pkpy_AnyStr__int64, \ int64_t: pkpy_AnyStr__i64, \
float: pkpy_AnyStr__float, \ float: pkpy_AnyStr__float, \
double: pkpy_AnyStr__double, \ double: pkpy_AnyStr__double, \
char: pkpy_AnyStr__char, \ char: pkpy_AnyStr__char, \

View File

@ -316,12 +316,12 @@ struct SStream: pkpy_SStream {
SStream& operator<< (size_t val){ SStream& operator<< (size_t val){
// size_t could overflow int64, but nevermind... // size_t could overflow int64, but nevermind...
pkpy_SStream__write_int64(this, val); pkpy_SStream__write_i64(this, val);
return *this; return *this;
} }
SStream& operator<< (i64 val){ SStream& operator<< (i64 val){
pkpy_SStream__write_int64(this, val); pkpy_SStream__write_i64(this, val);
return *this; return *this;
} }

View File

@ -24,7 +24,7 @@ void pkpy_SStream__write_int(pkpy_SStream* self, int i) {
pkpy_SStream__write_cstr(self, buf); pkpy_SStream__write_cstr(self, buf);
} }
void pkpy_SStream__write_int64(pkpy_SStream* self, int64_t i) { void pkpy_SStream__write_i64(pkpy_SStream* self, int64_t i) {
char buf[23]; // sign + 21 digits + null terminator char buf[23]; // sign + 21 digits + null terminator
snprintf(buf, sizeof(buf), "%lld", i); snprintf(buf, sizeof(buf), "%lld", i);
pkpy_SStream__write_cstr(self, buf); pkpy_SStream__write_cstr(self, buf);
@ -110,7 +110,7 @@ void pkpy_SStream__write_any(pkpy_SStream* self, const char* fmt, const pkpy_Any
assert(i < n); assert(i < n);
switch(args[i].type){ switch(args[i].type){
case 1: pkpy_SStream__write_int(self, args[i]._int); break; case 1: pkpy_SStream__write_int(self, args[i]._int); break;
case 2: pkpy_SStream__write_int64(self, args[i]._int64); break; case 2: pkpy_SStream__write_i64(self, args[i]._i64); break;
case 3: pkpy_SStream__write_float(self, args[i]._float, -1); break; case 3: pkpy_SStream__write_float(self, args[i]._float, -1); break;
case 4: pkpy_SStream__write_double(self, args[i]._double, -1); break; case 4: pkpy_SStream__write_double(self, args[i]._double, -1); break;
case 5: pkpy_SStream__write_char(self, args[i]._char); break; case 5: pkpy_SStream__write_char(self, args[i]._char); break;