MCPcopy Index your code
hub / github.com/RustPython/RustPython / cast_to_1d

Method cast_to_1d

crates/vm/src/builtins/memory.rs:808–830  ·  view source on GitHub ↗
(&self, format: PyUtf8StrRef, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

806 }
807
808 fn cast_to_1d(&self, format: PyUtf8StrRef, vm: &VirtualMachine) -> PyResult<Self> {
809 let format_str = format.as_str();
810 let format_spec = Self::parse_format(format_str, vm)?;
811 let itemsize = format_spec.size();
812 if !self.desc.len.is_multiple_of(itemsize) {
813 return Err(vm.new_type_error("memoryview: length is not a multiple of itemsize"));
814 }
815
816 Ok(Self {
817 buffer: self.buffer.clone(),
818 released: AtomicCell::new(false),
819 start: self.start,
820 format_spec,
821 desc: BufferDescriptor {
822 len: self.desc.len,
823 readonly: self.desc.readonly,
824 itemsize,
825 format: format_str.to_owned().into(),
826 dim_desc: vec![(self.desc.len / itemsize, itemsize as isize, 0)],
827 },
828 hash: OnceCell::new(),
829 })
830 }
831
832 #[pymethod]
833 fn cast(&self, args: CastArgs, vm: &VirtualMachine) -> PyResult<PyRef<Self>> {

Callers 1

castMethod · 0.80

Calls 6

newFunction · 0.85
ErrClass · 0.50
as_strMethod · 0.45
sizeMethod · 0.45
cloneMethod · 0.45
to_ownedMethod · 0.45

Tested by

no test coverage detected