Skip to content

Commit 0b061f5

Browse files
committed
Add take functions to CompleteLoadedAsset and CompleteErasedLoadedAsset.
1 parent 95272cc commit 0b061f5

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

crates/bevy_asset/src/loader.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,11 @@ pub struct CompleteLoadedAsset<A: Asset> {
268268
}
269269

270270
impl<A: Asset> CompleteLoadedAsset<A> {
271+
/// Take ownership of the stored [`Asset`] value.
272+
pub fn take(self) -> A {
273+
self.asset.value
274+
}
275+
271276
/// Returns the stored asset.
272277
pub fn get_asset(&self) -> &LoadedAsset<A> {
273278
&self.asset
@@ -299,6 +304,12 @@ pub struct CompleteErasedLoadedAsset {
299304
}
300305

301306
impl CompleteErasedLoadedAsset {
307+
/// Cast (and take ownership) of the [`Asset`] value of the given type. This will return
308+
/// [`Some`] if the stored type matches `A` and [`None`] if it does not.
309+
pub fn take<A: Asset>(self) -> Option<A> {
310+
self.asset.take()
311+
}
312+
302313
/// Returns the stored asset.
303314
pub fn get_asset(&self) -> &ErasedLoadedAsset {
304315
&self.asset

0 commit comments

Comments
 (0)