| 1 |
--- |
| 2 |
title: "`AssetId::invalid()` and `AssetId::INVALID_UUID` have been deprecated" |
| 3 |
pull_requests: [24392] |
| 4 |
--- |
| 5 |
|
| 6 |
`AssetId::invalid()` and `AssetId::INVALID_UUID` have been deprecated. This is |
| 7 |
part of an effort to reduce special cases and optimize asset lookups. |
| 8 |
|
| 9 |
If you were using `AssetId::invalid()` as a null value, the recommended solution |
| 10 |
is to change your variable to be `Option<AssetId>` and use `None` instead of |
| 11 |
`AssetId::invalid()`. |
| 12 |
|
| 13 |
Before: |
| 14 |
|
| 15 |
```rust |
| 16 |
struct MyImageResource(AssetId<Image>); |
| 17 |
|
| 18 |
world.insert_resource(MyImageResource(AssetId::invalid()); |
| 19 |
|
| 20 |
... |
| 21 |
|
| 22 |
let resource = world.resource::<MyImageResource>()?; |
| 23 |
let asset = assets.get(resource.0)?; |
| 24 |
``` |
| 25 |
|
| 26 |
After: |
| 27 |
|
| 28 |
```rust |
| 29 |
struct MyImageResource(Option<AssetId<Image>>); |
| 30 |
|
| 31 |
world.insert_resource(MyImageResource(None)); |
| 32 |
|
| 33 |
... |
| 34 |
|
| 35 |
let resource = world.resource::<MyImageResource>()?; |
| 36 |
let asset = assets.get(resource.0?)?; |
| 37 |
``` |
| 38 |
|
| 39 |
In some cases it may be possible to use `AssetId::default()` instead. But note |
| 40 |
that the default ID is *not* guaranteed to be a null value - an asset can be |
| 41 |
registered with the default ID. |