summaryrefslogtreecommitdiff
path: root/vendor/windows-core/src/weak.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/windows-core/src/weak.rs')
-rw-r--r--vendor/windows-core/src/weak.rs28
1 files changed, 0 insertions, 28 deletions
diff --git a/vendor/windows-core/src/weak.rs b/vendor/windows-core/src/weak.rs
deleted file mode 100644
index f89a2315..00000000
--- a/vendor/windows-core/src/weak.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-use super::*;
-use core::marker::PhantomData;
-
-/// `Weak` holds a non-owning reference to an object.
-#[derive(Clone, PartialEq, Eq, Default)]
-pub struct Weak<I: Interface>(Option<imp::IWeakReference>, PhantomData<I>);
-
-impl<I: Interface> Weak<I> {
- /// Creates a new `Weak` object without any backing object.
- pub const fn new() -> Self {
- Self(None, PhantomData)
- }
-
- /// Attempts to upgrade the weak reference to a strong reference.
- pub fn upgrade(&self) -> Option<I> {
- self.0
- .as_ref()
- .and_then(|inner| unsafe { inner.Resolve().ok() })
- }
-
- pub(crate) fn downgrade(source: &imp::IWeakReferenceSource) -> Result<Self> {
- let reference = unsafe { source.GetWeakReference().ok() };
- Ok(Self(reference, PhantomData))
- }
-}
-
-unsafe impl<I: Interface> Send for Weak<I> {}
-unsafe impl<I: Interface> Sync for Weak<I> {}