use beet_core::prelude::*;
#[derive(Debug, Reflect, PartialEq, Event)]
pub enum ReflectedAssetEvent<A: Asset> {
Added {
id: AssetId<A>,
},
Modified {
id: AssetId<A>,
},
Removed {
id: AssetId<A>,
},
Unused {
id: AssetId<A>,
},
LoadedWithDependencies {
id: AssetId<A>,
},
}
impl<A: Asset> Into<AssetEvent<A>> for ReflectedAssetEvent<A> {
fn into(self) -> AssetEvent<A> {
match self {
ReflectedAssetEvent::Added { id } => AssetEvent::Added { id },
ReflectedAssetEvent::Modified { id } => AssetEvent::Modified { id },
ReflectedAssetEvent::Removed { id } => AssetEvent::Removed { id },
ReflectedAssetEvent::Unused { id } => AssetEvent::Unused { id },
ReflectedAssetEvent::LoadedWithDependencies { id } => {
AssetEvent::LoadedWithDependencies { id }
}
}
}
}
impl<A: Asset> From<AssetEvent<A>> for ReflectedAssetEvent<A> {
fn from(event: AssetEvent<A>) -> Self {
match event {
AssetEvent::Added { id } => ReflectedAssetEvent::Added { id },
AssetEvent::Modified { id } => ReflectedAssetEvent::Modified { id },
AssetEvent::Removed { id } => ReflectedAssetEvent::Removed { id },
AssetEvent::Unused { id } => ReflectedAssetEvent::Unused { id },
AssetEvent::LoadedWithDependencies { id } => {
ReflectedAssetEvent::LoadedWithDependencies { id }
}
}
}
}
impl<A: Asset> Clone for ReflectedAssetEvent<A> {
fn clone(&self) -> Self { *self }
}
impl<A: Asset> Copy for ReflectedAssetEvent<A> {}