concinnity_core/components/
entity_target.rs1use crate::ecs::Entity;
4use crate::ecs::asset_id::AssetId;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
12pub enum EntityTarget {
13 Name(AssetId),
15 Entity(Entity),
17}
18
19impl Default for EntityTarget {
20 fn default() -> Self {
21 EntityTarget::Name(AssetId::default())
22 }
23}
24
25impl From<AssetId> for EntityTarget {
26 fn from(name: AssetId) -> Self {
27 EntityTarget::Name(name)
28 }
29}
30
31impl From<Entity> for EntityTarget {
32 fn from(entity: Entity) -> Self {
33 EntityTarget::Entity(entity)
34 }
35}
36
37impl EntityTarget {
38 pub fn name(self) -> Option<AssetId> {
40 match self {
41 EntityTarget::Name(name) => Some(name),
42 EntityTarget::Entity(_) => None,
43 }
44 }
45}