mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-22 04:20:17 +00:00
...
This commit is contained in:
parent
4f6d0999b7
commit
8de566f875
@ -149,6 +149,7 @@ py_GlobalRef py_tpmagic(py_Type type, py_Name name);
|
||||
|
||||
// new style decl-based bindings
|
||||
void py_bind(py_Ref obj, const char* sig, py_CFunction f);
|
||||
|
||||
py_ObjectRef py_bind2(py_Ref obj,
|
||||
const char* sig,
|
||||
py_CFunction f,
|
||||
@ -156,20 +157,6 @@ py_ObjectRef py_bind2(py_Ref obj,
|
||||
const char* docstring,
|
||||
int slots);
|
||||
|
||||
py_ObjectRef py_bind3(py_Ref obj,
|
||||
py_CFunction f,
|
||||
c11_sv name,
|
||||
c11_sv* args,
|
||||
int argc,
|
||||
c11_sv starred_arg,
|
||||
c11_sv* kwargs,
|
||||
int kwargc,
|
||||
py_Ref kwdefaults, // a tuple contains default values
|
||||
c11_sv starred_kwarg,
|
||||
enum BindType bt,
|
||||
const char* docstring,
|
||||
int slots);
|
||||
|
||||
// old style argc-based bindings
|
||||
void py_bindmethod(py_Type type, const char* name, py_CFunction f);
|
||||
void py_bindmethod2(py_Type type, const char* name, py_CFunction f, enum BindType bt);
|
||||
@ -381,6 +368,9 @@ bool py_tpcall(py_Type type, int argc, py_Ref argv);
|
||||
/// Check if the object is an instance of the given type.
|
||||
bool py_checktype(py_Ref self, py_Type type);
|
||||
|
||||
/// Get the type of the object.
|
||||
py_Type py_typeof(py_Ref self);
|
||||
|
||||
#define py_checkint(self) py_checktype(self, tp_int)
|
||||
#define py_checkfloat(self) py_checktype(self, tp_float)
|
||||
#define py_checkbool(self) py_checktype(self, tp_bool)
|
||||
|
@ -42,8 +42,8 @@ void* py_touserdata(py_Ref self) {
|
||||
bool py_istype(py_Ref self, py_Type type) { return self->type == type; }
|
||||
|
||||
bool py_checktype(py_Ref self, py_Type type) {
|
||||
if(self->type != type) {
|
||||
return TypeError("expected %t, got %t", type, self->type);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if(self->type == type) return true;
|
||||
return TypeError("expected %t, got %t", type, self->type);
|
||||
}
|
||||
|
||||
py_Type py_typeof(py_Ref self) { return self->type; }
|
Loading…
x
Reference in New Issue
Block a user