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 where Self: Sized; } impl DefaultableComponent for T { default fn default_for_item(_item: Item) -> Option { None } } pub fn get_default_component(item: Item) -> Option { T::default_for_item(item) }