Move Form and Species to traits, implement a bunch of mocks
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -19,6 +19,9 @@ pub use static_data::StaticData;
|
||||
#[doc(inline)]
|
||||
pub use type_library::*;
|
||||
|
||||
#[cfg(test)]
|
||||
pub(crate) mod tests {}
|
||||
|
||||
/// The library data for abilities.
|
||||
mod ability_library;
|
||||
/// Basic helper trait for libraries.
|
||||
|
||||
@@ -13,7 +13,7 @@ pub struct SpeciesLibrary {
|
||||
/// A unique identifier so we know what value this is.
|
||||
identifier: ValueIdentifier,
|
||||
/// The underlying map.
|
||||
map: IndexMap<StringKey, Arc<Species>>,
|
||||
map: IndexMap<StringKey, Arc<dyn Species>>,
|
||||
}
|
||||
|
||||
impl SpeciesLibrary {
|
||||
@@ -26,11 +26,11 @@ impl SpeciesLibrary {
|
||||
}
|
||||
}
|
||||
|
||||
impl DataLibrary<Species> for SpeciesLibrary {
|
||||
fn map(&self) -> &IndexMap<StringKey, Arc<Species>> {
|
||||
impl DataLibrary<dyn Species> for SpeciesLibrary {
|
||||
fn map(&self) -> &IndexMap<StringKey, Arc<dyn Species>> {
|
||||
&self.map
|
||||
}
|
||||
fn get_modify(&mut self) -> &mut IndexMap<StringKey, Arc<Species>> {
|
||||
fn get_modify(&mut self) -> &mut IndexMap<StringKey, Arc<dyn Species>> {
|
||||
&mut self.map
|
||||
}
|
||||
}
|
||||
@@ -48,18 +48,18 @@ pub mod tests {
|
||||
|
||||
use crate::static_data::libraries::data_library::DataLibrary;
|
||||
use crate::static_data::libraries::species_library::SpeciesLibrary;
|
||||
use crate::static_data::Species;
|
||||
use crate::static_data::StaticStatisticSet;
|
||||
use crate::static_data::{Form, LearnableMovesImpl};
|
||||
use crate::static_data::LearnableMovesImpl;
|
||||
use crate::static_data::{FormImpl, StaticStatisticSet};
|
||||
use crate::static_data::{Species, SpeciesImpl};
|
||||
|
||||
fn build_species() -> Species {
|
||||
Species::new(
|
||||
fn build_species() -> Arc<dyn Species> {
|
||||
Arc::new(SpeciesImpl::new(
|
||||
0,
|
||||
&"foo".into(),
|
||||
0.5,
|
||||
&"test_growthrate".into(),
|
||||
0,
|
||||
Arc::new(Form::new(
|
||||
Arc::new(FormImpl::new(
|
||||
&"default".into(),
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -72,7 +72,7 @@ pub mod tests {
|
||||
HashSet::new(),
|
||||
)),
|
||||
HashSet::new(),
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
pub fn build() -> SpeciesLibrary {
|
||||
@@ -80,7 +80,7 @@ pub mod tests {
|
||||
let species = build_species();
|
||||
// Borrow as mut so we can insert
|
||||
let w = &mut lib;
|
||||
w.add(&"foo".into(), Arc::new(species));
|
||||
w.add(&"foo".into(), species);
|
||||
// Drops borrow as mut
|
||||
|
||||
lib
|
||||
|
||||
Reference in New Issue
Block a user