This commit is contained in:
blueloveTH 2023-06-19 15:28:08 +08:00
parent c78275428f
commit c66f8e02e6
2 changed files with 12 additions and 0 deletions

View File

@ -78,6 +78,16 @@ struct CodeObjectSerializer{
buffer += END;
}
void write_none(){
buffer += 'N';
buffer += END;
}
void write_ellipsis(){
buffer += 'E';
buffer += END;
}
void write_bool(bool v){
buffer += 'b';
buffer += v ? '1' : '0';

View File

@ -1569,6 +1569,8 @@ inline void CodeObjectSerializer::write_object(VM *vm, PyObject *obj){
else if(is_float(obj)) write_float(_CAST(f64, obj));
else if(is_type(obj, vm->tp_str)) write_str(_CAST(Str&, obj));
else if(is_type(obj, vm->tp_bool)) write_bool(_CAST(bool, obj));
else if(obj == vm->None) write_none();
else if(obj == vm->Ellipsis) write_ellipsis();
else{
throw std::runtime_error(fmt(OBJ_NAME(vm->_t(obj)).escape(), " is not serializable"));
}