mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-17 01:51:39 +09:00
23 lines
674 B
Rust
23 lines
674 B
Rust
use crate::pyobject::{PyContext, PyFuncArgs, PyObject, PyObjectPayload, PyResult, TypeProtocol};
|
|
use crate::vm::VirtualMachine;
|
|
|
|
pub fn new_memory_view(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
|
|
arg_check!(vm, args, required = [(cls, None), (bytes_object, None)]);
|
|
vm.ctx.set_attr(&cls, "obj", bytes_object.clone());
|
|
Ok(PyObject::new(
|
|
PyObjectPayload::MemoryView {
|
|
obj: bytes_object.clone(),
|
|
},
|
|
cls.clone(),
|
|
))
|
|
}
|
|
|
|
pub fn init(ctx: &PyContext) {
|
|
let memoryview_type = &ctx.memoryview_type;
|
|
ctx.set_attr(
|
|
&memoryview_type,
|
|
"__new__",
|
|
ctx.new_rustfunc(new_memory_view),
|
|
);
|
|
}
|