Skip to content

Commit 713401d

Browse files
authored
Merge pull request #1006 from andy128k/weakref-eq
Implement PartialEq for WeakRef
2 parents adf6984 + 69c20d4 commit 713401d

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

glib/src/object.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3454,6 +3454,27 @@ impl<T: ObjectType> Default for WeakRef<T> {
34543454
unsafe impl<T: ObjectType + Sync + Sync> Sync for WeakRef<T> {}
34553455
unsafe impl<T: ObjectType + Send + Sync> Send for WeakRef<T> {}
34563456

3457+
impl<T: ObjectType> PartialEq for WeakRef<T> {
3458+
#[inline]
3459+
fn eq(&self, other: &Self) -> bool {
3460+
unsafe { self.0.priv_.p == other.0.priv_.p }
3461+
}
3462+
}
3463+
3464+
impl<T: ObjectType> PartialEq<T> for WeakRef<T> {
3465+
#[inline]
3466+
fn eq(&self, other: &T) -> bool {
3467+
unsafe { self.0.priv_.p == other.as_ptr() as *mut std::os::raw::c_void }
3468+
}
3469+
}
3470+
3471+
impl<T: ObjectType> PartialOrd for WeakRef<T> {
3472+
#[inline]
3473+
fn partial_cmp(&self, other: &Self) -> Option<cmp::Ordering> {
3474+
unsafe { self.0.priv_.p.partial_cmp(&other.0.priv_.p) }
3475+
}
3476+
}
3477+
34573478
// rustdoc-stripper-ignore-next
34583479
/// A weak reference to the object it was created for that can be sent to
34593480
/// different threads even for object types that don't implement `Send`.

0 commit comments

Comments
 (0)