azalea_inventory/default_components/
mod.rs

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