use alloc::string::String;
use alloc::vec::Vec;
use core::ops;
use bevy_ecs::component::Component;
use bevy_ecs::entity::Entity;
use bevy_ecs::world::EntityRef;
use crate::FieldGeneration;
#[derive(Component)]
pub struct ConfigNode {
pub path: Vec<String>,
pub generation: FieldGeneration,
}
#[derive(Component)]
pub struct RootNode;
#[derive(Component)]
#[relationship(relationship_target = ChildNodeList)]
pub struct ChildNodeOf(pub Entity);
#[derive(Component)]
#[relationship_target(relationship = ChildNodeOf)]
pub struct ChildNodeList(Vec<Entity>);
impl ops::Deref for ChildNodeList {
type Target = [Entity];
fn deref(&self) -> &Self::Target { &self.0 }
}
#[derive(Component)]
pub struct ScalarField;
#[derive(Component, Clone)]
pub struct ConditionalRelevance {
pub dependency: Entity,
pub is_entity_relevant: fn(EntityRef) -> bool,
}