diff -r e519802076e9 -r 8e74d4eb89f5 rust/hwphysics/src/lib.rs --- a/rust/hwphysics/src/lib.rs Fri Mar 22 23:46:48 2019 +0300 +++ b/rust/hwphysics/src/lib.rs Sat Mar 23 01:07:23 2019 +0300 @@ -1,35 +1,23 @@ -mod common; -mod physics; +pub mod collision; +pub mod common; mod grid; -mod collision; +pub mod physics; use fpnum::FPNum; use integral_geometry::Size; use land2d::Land2D; use crate::{ - common::{ - GearId, - GearData, - GearDataAggregator, - GearDataProcessor - }, - physics::{ - PhysicsProcessor, - PhysicsData - }, - collision::{ - CollisionProcessor, - CollisionData, - ContactData - } + collision::{CollisionData, CollisionProcessor, ContactData}, + common::{GearData, GearDataAggregator, GearDataProcessor, GearId}, + physics::{PhysicsData, PhysicsProcessor}, }; pub struct JoinedData { gear_id: GearId, physics: PhysicsData, collision: CollisionData, - contact: ContactData + contact: ContactData, } pub struct World { @@ -44,7 +32,7 @@ &mut self.$field } } - } + }; } processor_map!(PhysicsData => physics); @@ -54,7 +42,7 @@ pub fn new(world_size: Size) -> Self { Self { physics: PhysicsProcessor::new(), - collision: CollisionProcessor::new(world_size) + collision: CollisionProcessor::new(world_size), } } @@ -64,8 +52,9 @@ } pub fn add_gear_data(&mut self, gear_id: GearId, data: T) - where T: GearData, - Self: GearDataAggregator + where + T: GearData, + Self: GearDataAggregator, { self.find_processor().add(gear_id, data); } @@ -74,11 +63,11 @@ #[cfg(test)] mod tests { use crate::{ - World, + collision::{CircleBounds, CollisionData}, physics::PhysicsData, - collision::{CollisionData, CircleBounds} + World, }; - use fpnum::{FPNum, FPPoint, fp}; + use fpnum::{fp, FPNum, FPPoint}; use integral_geometry::Size; use land2d::Land2D; @@ -89,17 +78,23 @@ let mut world = World::new(world_size); let gear_id = 46631; - world.add_gear_data(gear_id, PhysicsData { - position: FPPoint::zero(), - velocity: FPPoint::unit_y() - }); + world.add_gear_data( + gear_id, + PhysicsData { + position: FPPoint::zero(), + velocity: FPPoint::unit_y(), + }, + ); - world.add_gear_data(gear_id, CollisionData { - bounds: CircleBounds { - center: FPPoint::zero(), - radius: fp!(10) - } - }); + world.add_gear_data( + gear_id, + CollisionData { + bounds: CircleBounds { + center: FPPoint::zero(), + radius: fp!(10), + }, + }, + ); let land = Land2D::new(Size::new(world_size.width - 2, world_size.height - 2), 0);