@@ -84,7 +84,7 @@ unsafe fn from_refs<A: INSArray>(refs: &[&A::Item]) -> Id<A, A::Ownership> {
84
84
85
85
pub trait INSArray : INSObject {
86
86
type Item : INSObject ;
87
- type Own : Ownership ;
87
+ type ItemOwnership : Ownership ;
88
88
89
89
fn count ( & self ) -> usize {
90
90
unsafe { msg_send ! [ self , count] }
@@ -126,7 +126,7 @@ pub trait INSArray: INSObject {
126
126
}
127
127
}
128
128
129
- fn from_vec ( vec : Vec < Id < Self :: Item , Self :: Own > > ) -> Id < Self , Self :: Ownership > {
129
+ fn from_vec ( vec : Vec < Id < Self :: Item , Self :: ItemOwnership > > ) -> Id < Self , Self :: Ownership > {
130
130
unsafe { from_refs ( vec. as_slice_ref ( ) ) }
131
131
}
132
132
@@ -144,7 +144,7 @@ pub trait INSArray: INSObject {
144
144
self . objects_in_range ( 0 ..self . count ( ) )
145
145
}
146
146
147
- fn into_vec ( array : Id < Self , Owned > ) -> Vec < Id < Self :: Item , Self :: Own > > {
147
+ fn into_vec ( array : Id < Self , Owned > ) -> Vec < Id < Self :: Item , Self :: ItemOwnership > > {
148
148
array
149
149
. to_vec ( )
150
150
. into_iter ( )
@@ -154,7 +154,7 @@ pub trait INSArray: INSObject {
154
154
155
155
fn mut_object_at ( & mut self , index : usize ) -> & mut Self :: Item
156
156
where
157
- Self : INSArray < Own = Owned > ,
157
+ Self : INSArray < ItemOwnership = Owned > ,
158
158
{
159
159
unsafe {
160
160
let result: * mut Self :: Item = msg_send ! [ self , objectAtIndex: index] ;
@@ -164,22 +164,22 @@ pub trait INSArray: INSObject {
164
164
165
165
fn shared_object_at ( & self , index : usize ) -> Id < Self :: Item , Shared >
166
166
where
167
- Self : INSArray < Own = Shared > ,
167
+ Self : INSArray < ItemOwnership = Shared > ,
168
168
{
169
169
let obj = self . object_at ( index) ;
170
170
unsafe { Id :: retain ( obj. into ( ) ) }
171
171
}
172
172
173
173
fn from_slice ( slice : & [ Id < Self :: Item , Shared > ] ) -> Id < Self , Self :: Ownership >
174
174
where
175
- Self : INSArray < Own = Shared > ,
175
+ Self : INSArray < ItemOwnership = Shared > ,
176
176
{
177
177
unsafe { from_refs ( slice. as_slice_ref ( ) ) }
178
178
}
179
179
180
180
fn to_shared_vec ( & self ) -> Vec < Id < Self :: Item , Shared > >
181
181
where
182
- Self : INSArray < Own = Shared > ,
182
+ Self : INSArray < ItemOwnership = Shared > ,
183
183
{
184
184
self . to_vec ( )
185
185
. into_iter ( )
@@ -188,7 +188,7 @@ pub trait INSArray: INSObject {
188
188
}
189
189
}
190
190
191
- pub struct NSArray < T , O : Ownership = Owned > {
191
+ pub struct NSArray < T , O : Ownership > {
192
192
item : PhantomData < Id < T , O > > ,
193
193
}
194
194
@@ -204,15 +204,15 @@ impl<T: INSObject, O: Ownership> INSObject for NSArray<T, O> {
204
204
205
205
impl < T : INSObject , O : Ownership > INSArray for NSArray < T , O > {
206
206
type Item = T ;
207
- type Own = O ;
207
+ type ItemOwnership = O ;
208
208
}
209
209
210
210
impl < T : INSObject > INSCopying for NSArray < T , Shared > {
211
- type Output = NSSharedArray < T > ;
211
+ type Output = NSArray < T , Shared > ;
212
212
}
213
213
214
214
impl < T : INSObject > INSMutableCopying for NSArray < T , Shared > {
215
- type Output = NSMutableSharedArray < T > ;
215
+ type Output = NSMutableArray < T , Shared > ;
216
216
}
217
217
218
218
impl < T : INSObject , O : Ownership > INSFastEnumeration for NSArray < T , O > {
@@ -227,16 +227,14 @@ impl<T: INSObject, O: Ownership> Index<usize> for NSArray<T, O> {
227
227
}
228
228
}
229
229
230
- pub type NSSharedArray < T > = NSArray < T , Shared > ;
231
-
232
230
pub trait INSMutableArray : INSArray {
233
- fn add_object ( & mut self , obj : Id < Self :: Item , Self :: Own > ) {
231
+ fn add_object ( & mut self , obj : Id < Self :: Item , Self :: ItemOwnership > ) {
234
232
unsafe {
235
233
let _: ( ) = msg_send ! [ self , addObject: & * obj] ;
236
234
}
237
235
}
238
236
239
- fn insert_object_at ( & mut self , index : usize , obj : Id < Self :: Item , Self :: Own > ) {
237
+ fn insert_object_at ( & mut self , index : usize , obj : Id < Self :: Item , Self :: ItemOwnership > ) {
240
238
unsafe {
241
239
let _: ( ) = msg_send ! [ self , insertObject: & * obj, atIndex: index] ;
242
240
}
@@ -245,8 +243,8 @@ pub trait INSMutableArray: INSArray {
245
243
fn replace_object_at (
246
244
& mut self ,
247
245
index : usize ,
248
- obj : Id < Self :: Item , Self :: Own > ,
249
- ) -> Id < Self :: Item , Self :: Own > {
246
+ obj : Id < Self :: Item , Self :: ItemOwnership > ,
247
+ ) -> Id < Self :: Item , Self :: ItemOwnership > {
250
248
let old_obj = unsafe {
251
249
let obj = self . object_at ( index) ;
252
250
Id :: retain ( obj. into ( ) )
@@ -261,7 +259,7 @@ pub trait INSMutableArray: INSArray {
261
259
old_obj
262
260
}
263
261
264
- fn remove_object_at ( & mut self , index : usize ) -> Id < Self :: Item , Self :: Own > {
262
+ fn remove_object_at ( & mut self , index : usize ) -> Id < Self :: Item , Self :: ItemOwnership > {
265
263
let obj = unsafe {
266
264
let obj = self . object_at ( index) ;
267
265
Id :: retain ( obj. into ( ) )
@@ -272,7 +270,7 @@ pub trait INSMutableArray: INSArray {
272
270
obj
273
271
}
274
272
275
- fn remove_last_object ( & mut self ) -> Id < Self :: Item , Self :: Own > {
273
+ fn remove_last_object ( & mut self ) -> Id < Self :: Item , Self :: ItemOwnership > {
276
274
let obj = self
277
275
. last_object ( )
278
276
. map ( |obj| unsafe { Id :: retain ( obj. into ( ) ) } ) ;
@@ -321,7 +319,7 @@ pub trait INSMutableArray: INSArray {
321
319
}
322
320
}
323
321
324
- pub struct NSMutableArray < T , O : Ownership = Owned > {
322
+ pub struct NSMutableArray < T , O : Ownership > {
325
323
item : PhantomData < Id < T , O > > ,
326
324
}
327
325
@@ -337,17 +335,17 @@ impl<T: INSObject, O: Ownership> INSObject for NSMutableArray<T, O> {
337
335
338
336
impl < T : INSObject , O : Ownership > INSArray for NSMutableArray < T , O > {
339
337
type Item = T ;
340
- type Own = O ;
338
+ type ItemOwnership = O ;
341
339
}
342
340
343
341
impl < T : INSObject , O : Ownership > INSMutableArray for NSMutableArray < T , O > { }
344
342
345
343
impl < T : INSObject > INSCopying for NSMutableArray < T , Shared > {
346
- type Output = NSSharedArray < T > ;
344
+ type Output = NSArray < T , Shared > ;
347
345
}
348
346
349
347
impl < T : INSObject > INSMutableCopying for NSMutableArray < T , Shared > {
350
- type Output = NSMutableSharedArray < T > ;
348
+ type Output = NSMutableArray < T , Shared > ;
351
349
}
352
350
353
351
impl < T : INSObject , O : Ownership > INSFastEnumeration for NSMutableArray < T , O > {
@@ -362,8 +360,6 @@ impl<T: INSObject, O: Ownership> Index<usize> for NSMutableArray<T, O> {
362
360
}
363
361
}
364
362
365
- pub type NSMutableSharedArray < T > = NSMutableArray < T , Shared > ;
366
-
367
363
#[ cfg( test) ]
368
364
mod tests {
369
365
use alloc:: vec;
0 commit comments