mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-09 22:49:57 +09:00
27 lines
726 B
Rust
27 lines
726 B
Rust
use super::objtype;
|
|
|
|
use super::super::pyobject::{
|
|
PyContext, PyFuncArgs, PyObject, PyObjectKind, PyObjectRef, PyResult, TypeProtocol,
|
|
};
|
|
use super::super::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(
|
|
PyObjectKind::MemoryView {
|
|
obj: bytes_object.clone(),
|
|
},
|
|
cls.clone(),
|
|
))
|
|
}
|
|
|
|
pub fn init(ctx: &PyContext) {
|
|
let ref memoryview_type = ctx.memoryview_type;
|
|
ctx.set_attr(
|
|
&memoryview_type,
|
|
"__new__",
|
|
ctx.new_rustfunc(new_memory_view),
|
|
);
|
|
}
|