bevy_immediate_core 0.5.0

A simple, fast, and modular immediate mode UI library for Bevy
Documentation
use std::marker::PhantomData;

use bevy_ecs::{
    query::With,
    system::Query,
    world::{FilteredEntityMut, FilteredResourcesMut},
};

use crate::{CapSet, ImmMarker};

/// You can retrieve components that were requested by capabilities. See [`FilteredEntityMut`]
///
/// [`SystemParam`] for immediate mode capability requests [`CapSet`]
#[derive(bevy_derive::Deref, bevy_derive::DerefMut)]
pub struct ImmCapQueryParam<'w, 's, Cap: CapSet> {
    /// Query for accessing entities being built by immediate mode system
    ///
    /// This query makes available requested components registered by capabilities
    ///
    /// In case of collision. Use [`super::ImmQuery`] or
    /// [`bevy_ecs::prelude::Without<ImmMarker<()>>`] (replace () with your used `Cap``)
    #[deref]
    pub query: Query<'w, 's, FilteredEntityMut<'static, 'static>, With<ImmMarker<Cap>>>,
}

/// You can retrieve resources that were registered by capability. See [`FilteredResourcesMut`]
///
/// [`SystemParam`] for immediate mode capability requests [`CapSet`]
#[derive(bevy_derive::Deref, bevy_derive::DerefMut)]
pub struct ImmCapResourcesParam<'w, 's, Cap: CapSet> {
    /// Can be used to access resources requested by capabilities
    #[deref]
    pub resources: FilteredResourcesMut<'w, 's>,
    _ph: PhantomData<Cap>,
}

mod system_param_impl;