Make MoveData a trait
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-11-27 22:29:11 +01:00
parent 27164616e9
commit ad9f17ccf1
12 changed files with 118 additions and 81 deletions

View File

@@ -13,7 +13,7 @@ pub struct MoveLibrary {
/// A unique identifier so we know what value this is.
identifier: ValueIdentifier,
/// The underlying map.
map: IndexMap<StringKey, Arc<MoveData>>,
map: IndexMap<StringKey, Arc<dyn MoveData>>,
}
impl MoveLibrary {
@@ -26,11 +26,11 @@ impl MoveLibrary {
}
}
impl DataLibrary<MoveData> for MoveLibrary {
fn map(&self) -> &IndexMap<StringKey, Arc<MoveData>> {
impl DataLibrary<dyn MoveData> for MoveLibrary {
fn map(&self) -> &IndexMap<StringKey, Arc<dyn MoveData>> {
&self.map
}
fn get_modify(&mut self) -> &mut IndexMap<StringKey, Arc<MoveData>> {
fn get_modify(&mut self) -> &mut IndexMap<StringKey, Arc<dyn MoveData>> {
&mut self.map
}
}
@@ -48,11 +48,11 @@ pub mod tests {
use crate::static_data::libraries::data_library::DataLibrary;
use crate::static_data::libraries::move_library::MoveLibrary;
use crate::static_data::{MoveCategory, MoveData, MoveTarget};
use crate::static_data::{MoveCategory, MoveDataImpl, MoveTarget};
use crate::StringKey;
fn build_move() -> MoveData {
MoveData::new(
fn build_move() -> MoveDataImpl {
MoveDataImpl::new(
&"foo".into(),
0.into(),
MoveCategory::Physical,