blob: 7f9ef6fb5d109a1526d17ad86661d859bb4f56e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
pub mod generated;
use azalea_registry::Item;
use crate::components::DataComponentTrait;
/// A [`DataComponent`] that some [`Item`]s may have a default value for.
pub trait DefaultableComponent: DataComponentTrait {
fn default_for_item(item: Item) -> Option<Self>
where
Self: Sized;
}
impl<T: DataComponentTrait> DefaultableComponent for T {
default fn default_for_item(_item: Item) -> Option<Self> {
None
}
}
pub fn get_default_component<T: DefaultableComponent>(item: Item) -> Option<T> {
T::default_for_item(item)
}
|