use rustsim_core::interaction::{PositionedAgent, SpaceInteraction};
use rustsim_core::space::Space;
#[derive(Debug, Default, Clone, Copy)]
pub struct NothingSpace;
impl Space for NothingSpace {}
impl<A> SpaceInteraction<A> for NothingSpace
where
A: PositionedAgent<Position = ()>,
{
type Error = std::convert::Infallible;
fn random_position<R: rand::RngCore>(&self, _rng: &mut R) -> A::Position {}
fn add_agent(&mut self, _agent: &A) -> Result<(), Self::Error> {
Ok(())
}
fn remove_agent(&mut self, _agent: &A) -> Result<(), Self::Error> {
Ok(())
}
fn nearby_ids(
&self,
_position: &A::Position,
_radius: usize,
) -> Vec<rustsim_core::types::AgentId> {
Vec::new()
}
}