Skip to main content

swls_core/components/
resources.rs

1use std::collections::HashMap;
2
3use bevy_ecs::prelude::*;
4use derive_more::{AsMut, AsRef, Deref, DerefMut};
5use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender};
6
7use crate::systems::{DefinedClass, DefinedProperty};
8
9/// [`Resource`] used to receive command queues. These command queues are handled with [`handle_tasks`](crate::prelude::systems::handle_tasks).
10#[derive(Resource, AsRef, Deref, AsMut, DerefMut, Debug)]
11pub struct CommandReceiver(pub UnboundedReceiver<bevy_ecs::world::CommandQueue>);
12
13/// [`Resource`] used to send command queues, allowing for async operations.
14#[derive(Resource, AsRef, Deref, AsMut, DerefMut, Debug, Clone)]
15pub struct CommandSender(pub UnboundedSender<bevy_ecs::world::CommandQueue>);
16
17/// [`Resource`] used to set and get all known ontology classes and properties.
18#[derive(Resource, Default)]
19pub struct Ontologies {
20    pub classes: HashMap<oxigraph::model::NamedNode, DefinedClass>,
21    pub properties: HashMap<String, DefinedProperty>,
22}