blob: 2cc96d510d393e9413bfb81443324171d6a6158c (
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::builtin::ItemKind;
use crate::components::DataComponentTrait;
/// A trait for data components that some [`ItemKind`]s may have a default value
/// for.
pub trait DefaultableComponent: DataComponentTrait {
fn default_for_item(item: ItemKind) -> Option<Self>
where
Self: Sized;
}
impl<T: DataComponentTrait> DefaultableComponent for T {
default fn default_for_item(_item: ItemKind) -> Option<Self> {
None
}
}
pub fn get_default_component<T: DefaultableComponent>(item: ItemKind) -> Option<T> {
T::default_for_item(item)
}
|