소스 검색

rename take to manually drop

Evan Almloff 1 년 전
부모
커밋
5f9e5f607b
4개의 변경된 파일11개의 추가작업 그리고 11개의 파일을 삭제
  1. 2 2
      packages/generational-box/src/lib.rs
  2. 3 5
      packages/signals/src/copy_value.rs
  3. 3 1
      packages/signals/src/read_only_signal.rs
  4. 3 3
      packages/signals/src/signal.rs

+ 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.