mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-09 22:49:57 +09:00
28 lines
705 B
Rust
28 lines
705 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));
|
|
}
|