azalea_inventory/default_components/
mod.rs

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