blob: 74b7248edac0958b18d701112577d88bbddb224a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
pub mod generated;
use azalea_registry::Item;
use crate::components::DataComponentTrait;
/// A trait for data components 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)
}
|