docs/bevy/release-content/migration-guides/deprecate_asset_id_invalid.md 1 K · 41 lines · raw · history

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.