@@ -3,7 +3,6 @@ use super::{
3
3
primitive:: { new_simple_type, PyCSimple } ,
4
4
} ;
5
5
use crate :: builtins:: {
6
- self ,
7
6
slice:: PySlice ,
8
7
PyBytes , PyInt , PyList , PyRange , PyStr , PyType , PyTypeRef ,
9
8
} ;
@@ -14,7 +13,7 @@ use crate::stdlib::ctypes::basics::{
14
13
default_from_param, generic_get_buffer, get_size, BorrowValue as BorrowValueCData ,
15
14
BorrowValueMut , PyCData , PyCDataFunctions , PyCDataMethods , PyCDataSequenceMethods , RawBuffer ,
16
15
} ;
17
- use crate :: { AsObject , Context , PyObjectRef , PyRef , PyResult , TryFromObject , VirtualMachine } ;
16
+ use crate :: { AsObject , Py , PyObjectRef , PyRef , PyResult , TryFromObject , VirtualMachine } ;
18
17
use rustpython_vm:: object:: PyPayload ;
19
18
use num_traits:: Signed ;
20
19
use std:: convert:: TryInto ;
@@ -23,6 +22,7 @@ use widestring::WideCString;
23
22
use crate :: class:: StaticType ;
24
23
use crate :: convert:: IntoObject ;
25
24
use crate :: protocol:: { PyBuffer , PyIter } ;
25
+ use crate :: types:: AsBuffer ;
26
26
27
27
// TODO: make sure that this is correct wrt windows and unix wstr
28
28
fn slice_to_obj ( ty : & str , b : & [ u8 ] , vm : & VirtualMachine ) -> PyResult {
@@ -256,7 +256,7 @@ fn array_slice_setitem(
256
256
//Right now I'm setting one
257
257
let size = length. map_or ( Ok ( 1 ) , |v| usize:: try_from_object ( vm, v) ) ?;
258
258
259
- for ( i, curr) in PyIterable :: try_from_object ( vm, _range. into_object ( vm) ) ?. iter ( vm) ?. enumerate ( ) {
259
+ for ( i, curr) in PyIter :: try_from_object ( vm, _range. into_object ( vm) ) ?. iter ( vm) ?. enumerate ( ) {
260
260
let idx = fix_index ( isize:: try_from_object ( vm, curr?) ?, size, vm) ? as usize ;
261
261
let offset = idx * size;
262
262
let item = obj. get_item ( i, vm) ?;
@@ -286,6 +286,7 @@ fn fix_index(index: isize, length: usize, vm: &VirtualMachine) -> PyResult<isize
286
286
#[ pyclass( module = "_ctypes" , name = "PyCArrayType" , base = "PyType" ) ]
287
287
pub struct PyCArrayMeta { }
288
288
289
+ #[ derive( PyPayload ) ]
289
290
#[ pyclass(
290
291
module = "_ctypes" ,
291
292
name = "Array" ,
@@ -327,8 +328,8 @@ impl<'a> BorrowValueMut<'a> for PyCArray {
327
328
}
328
329
}
329
330
330
- impl BufferProtocol for PyCArray {
331
- fn get_buffer ( zelf : & PyRef < Self > , vm : & VirtualMachine ) -> PyResult < Box < dyn Buffer > > {
331
+ impl AsBuffer for PyCArray {
332
+ fn as_buffer ( zelf : & Py < Self > , vm : & VirtualMachine ) -> PyResult < PyBuffer > {
332
333
generic_get_buffer :: < Self > ( zelf, vm)
333
334
}
334
335
}
0 commit comments