浏览代码

rename take to manually drop

Evan Almloff 1 年之前
父节点
当前提交
5f9e5f607b

+ 2 - 2
packages/generational-box/src/lib.rs

@@ -186,8 +186,8 @@ impl<T: 'static, S: Storage<T>> GenerationalBox<T, S> {
         }
     }
 
-    /// Take the value out of the generational box and invalidate the generational box. This will return the value if the value was taken.
-    pub fn take(&self) -> Option<T> {
+    /// Drop the value out of the generational box and invalidate the generational box. This will return the value if the value was taken.
+    pub fn manually_drop(&self) -> Option<T> {
         if self.validate() {
             Storage::take(&self.raw.0.data)
         } else {

+ 3 - 5
packages/signals/src/copy_value.rs

@@ -190,11 +190,9 @@ impl<T: 'static, S: Storage<T>> CopyValue<T, S> {
         }
     }
 
-    /// Take the value out of the CopyValue, invalidating the value in the process.
-    pub fn take(&self) -> T {
-        self.value
-            .take()
-            .expect("value is already dropped or borrowed")
+    /// Manually drop the value in the CopyValue, invalidating the value in the process.
+    pub fn manually_drop(&self) -> Option<T> {
+        self.value.manually_drop()
     }
 
     /// Get the scope this value was created in.

+ 3 - 1
packages/signals/src/read_only_signal.rs

@@ -50,7 +50,9 @@ impl<T: 'static, S: Storage<SignalData<T>>> ReadOnlySignal<T, S> {
     #[doc(hidden)]
     /// This should only be used by the `rsx!` macro.
     pub fn __take(&self) -> T {
-        self.inner.take()
+        self.inner
+            .manually_drop()
+            .expect("Signal has already been dropped")
     }
 }
 

+ 3 - 3
packages/signals/src/signal.rs

@@ -136,9 +136,9 @@ impl<T: 'static, S: Storage<SignalData<T>>> Signal<T, S> {
         }
     }
 
-    /// Take the value out of the signal, invalidating the signal in the process.
-    pub fn take(&self) -> T {
-        self.inner.take().value
+    /// Drop the value out of the signal, invalidating the signal in the process.
+    pub fn manually_drop(&self) -> Option<T> {
+        self.inner.manually_drop().map(|i| i.value)
     }
 
     /// Get the scope the signal was created in.