@@ -99,7 +99,7 @@ impl Ownership for Shared {}
99
99
/// ```
100
100
#[ repr( transparent) ]
101
101
// TODO: Figure out if `Message` bound on `T` would be better here?
102
- pub struct Id < T , O = Owned > {
102
+ pub struct Id < T , O : Ownership = Owned > {
103
103
/// A pointer to the contained object. The pointer is always retained.
104
104
///
105
105
/// It is important that this is `NonNull`, since we want to dereference
@@ -311,7 +311,7 @@ impl<T: Message> Clone for Id<T, Shared> {
311
311
/// borrowed data.
312
312
///
313
313
/// [dropck_eyepatch]: https://doc.rust-lang.org/nightly/nomicon/dropck.html#an-escape-hatch
314
- impl < T , O > Drop for Id < T , O > {
314
+ impl < T , O : Ownership > Drop for Id < T , O > {
315
315
/// Releases the retained object.
316
316
///
317
317
/// The contained object's destructor (if it has one) is never run!
@@ -354,7 +354,7 @@ unsafe impl<T: Send> Send for Id<T, Owned> {}
354
354
/// access as having a `T` directly.
355
355
unsafe impl < T : Sync > Sync for Id < T , Owned > { }
356
356
357
- impl < T , O > Deref for Id < T , O > {
357
+ impl < T , O : Ownership > Deref for Id < T , O > {
358
358
type Target = T ;
359
359
360
360
/// Obtain an immutable reference to the object.
@@ -374,7 +374,7 @@ impl<T> DerefMut for Id<T, Owned> {
374
374
}
375
375
}
376
376
377
- impl < T : PartialEq , O > PartialEq for Id < T , O > {
377
+ impl < T : PartialEq , O : Ownership > PartialEq for Id < T , O > {
378
378
#[ inline]
379
379
fn eq ( & self , other : & Self ) -> bool {
380
380
( * * self ) . eq ( & * * other)
@@ -386,9 +386,9 @@ impl<T: PartialEq, O> PartialEq for Id<T, O> {
386
386
}
387
387
}
388
388
389
- impl < T : Eq , O > Eq for Id < T , O > { }
389
+ impl < T : Eq , O : Ownership > Eq for Id < T , O > { }
390
390
391
- impl < T : PartialOrd , O > PartialOrd for Id < T , O > {
391
+ impl < T : PartialOrd , O : Ownership > PartialOrd for Id < T , O > {
392
392
#[ inline]
393
393
fn partial_cmp ( & self , other : & Self ) -> Option < core:: cmp:: Ordering > {
394
394
( * * self ) . partial_cmp ( & * * other)
@@ -411,32 +411,32 @@ impl<T: PartialOrd, O> PartialOrd for Id<T, O> {
411
411
}
412
412
}
413
413
414
- impl < T : Ord , O > Ord for Id < T , O > {
414
+ impl < T : Ord , O : Ownership > Ord for Id < T , O > {
415
415
#[ inline]
416
416
fn cmp ( & self , other : & Self ) -> core:: cmp:: Ordering {
417
417
( * * self ) . cmp ( & * * other)
418
418
}
419
419
}
420
420
421
- impl < T : hash:: Hash , O > hash:: Hash for Id < T , O > {
421
+ impl < T : hash:: Hash , O : Ownership > hash:: Hash for Id < T , O > {
422
422
fn hash < H : hash:: Hasher > ( & self , state : & mut H ) {
423
423
( * * self ) . hash ( state)
424
424
}
425
425
}
426
426
427
- impl < T : fmt:: Display , O > fmt:: Display for Id < T , O > {
427
+ impl < T : fmt:: Display , O : Ownership > fmt:: Display for Id < T , O > {
428
428
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
429
429
( * * self ) . fmt ( f)
430
430
}
431
431
}
432
432
433
- impl < T : fmt:: Debug , O > fmt:: Debug for Id < T , O > {
433
+ impl < T : fmt:: Debug , O : Ownership > fmt:: Debug for Id < T , O > {
434
434
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
435
435
( * * self ) . fmt ( f)
436
436
}
437
437
}
438
438
439
- impl < T , O > fmt:: Pointer for Id < T , O > {
439
+ impl < T , O : Ownership > fmt:: Pointer for Id < T , O > {
440
440
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
441
441
fmt:: Pointer :: fmt ( & self . ptr . as_ptr ( ) , f)
442
442
}
@@ -472,7 +472,7 @@ impl<I: ExactSizeIterator> ExactSizeIterator for Id<I, Owned> {
472
472
473
473
impl < I : FusedIterator > FusedIterator for Id < I , Owned > { }
474
474
475
- impl < T , O > borrow:: Borrow < T > for Id < T , O > {
475
+ impl < T , O : Ownership > borrow:: Borrow < T > for Id < T , O > {
476
476
fn borrow ( & self ) -> & T {
477
477
& * * self
478
478
}
@@ -484,7 +484,7 @@ impl<T> borrow::BorrowMut<T> for Id<T, Owned> {
484
484
}
485
485
}
486
486
487
- impl < T , O > AsRef < T > for Id < T , O > {
487
+ impl < T , O : Ownership > AsRef < T > for Id < T , O > {
488
488
fn as_ref ( & self ) -> & T {
489
489
& * * self
490
490
}
@@ -507,7 +507,7 @@ impl<T> AsMut<T> for Id<T, Owned> {
507
507
//
508
508
// See https://doc.rust-lang.org/1.54.0/src/alloc/boxed.rs.html#1652-1675
509
509
// and the `Arc` implementation.
510
- impl < T , O > Unpin for Id < T , O > { }
510
+ impl < T , O : Ownership > Unpin for Id < T , O > { }
511
511
512
512
// TODO: When stabilized impl Fn traits & CoerceUnsized
513
513
0 commit comments