Skip to content

Commit fef7cea

Browse files
committed
Reintroduce clone for ResourceFuture
1 parent 45c47a2 commit fef7cea

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

packages/hooks/src/use_resource.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,8 @@ impl<T: Clone> Deref for Resource<T> {
729729
}
730730
}
731731

732+
static NEXT_RESOURCE_FUTURE_ID: AtomicUsize = AtomicUsize::new(0);
733+
732734
#[derive(Debug)]
733735
pub struct ResourceFuture<T>
734736
where
@@ -759,6 +761,19 @@ where
759761
}
760762
}
761763

764+
impl<T> Clone for ResourceFuture<T>
765+
where
766+
T: 'static,
767+
{
768+
fn clone(&self) -> Self {
769+
let id = NEXT_RESOURCE_FUTURE_ID.fetch_add(1, Ordering::Relaxed);
770+
ResourceFuture {
771+
id,
772+
resource: self.resource,
773+
}
774+
}
775+
}
776+
762777
impl<T> Drop for ResourceFuture<T>
763778
where
764779
T: 'static,
@@ -777,8 +792,7 @@ where
777792
type IntoFuture = ResourceFuture<T>;
778793

779794
fn into_future(self) -> Self::IntoFuture {
780-
static NEXT_FUTURE_ID: AtomicUsize = AtomicUsize::new(0);
781-
let id = NEXT_FUTURE_ID.fetch_add(1, Ordering::Relaxed);
795+
let id = NEXT_RESOURCE_FUTURE_ID.fetch_add(1, Ordering::Relaxed);
782796
ResourceFuture { id, resource: self }
783797
}
784798
}

0 commit comments

Comments
 (0)