pub struct AffectProcessor { /* private fields */ }Expand description
Tracks affect state and contagion dynamics for agents.
Implementations§
Source§impl AffectProcessor
impl AffectProcessor
pub fn new() -> Self
pub fn with_config(config: ContagionConfig) -> Self
Sourcepub fn register_agent(
&mut self,
agent_id: &str,
initial_state: AffectState,
resistance: f64,
)
pub fn register_agent( &mut self, agent_id: &str, initial_state: AffectState, resistance: f64, )
Register an agent with initial affect state and resistance.
Sourcepub fn get_state(&self, agent_id: &str) -> Option<&AffectState>
pub fn get_state(&self, agent_id: &str) -> Option<&AffectState>
Get current affect state for an agent.
Sourcepub fn get_agent_affect(&self, agent_id: &str) -> Option<&AgentAffect>
pub fn get_agent_affect(&self, agent_id: &str) -> Option<&AgentAffect>
Get full agent affect info.
Sourcepub fn set_resistance(&mut self, agent_id: &str, resistance: f64) -> bool
pub fn set_resistance(&mut self, agent_id: &str, resistance: f64) -> bool
Set resistance level for an agent.
Sourcepub fn apply_contagion(
&mut self,
sender_id: &str,
receiver_id: &str,
incoming_affect: &AffectState,
contagion_strength: f64,
) -> f64
pub fn apply_contagion( &mut self, sender_id: &str, receiver_id: &str, incoming_affect: &AffectState, contagion_strength: f64, ) -> f64
Apply affect contagion from sender to receiver.
The effective change is modulated by:
- contagion_strength (from the message)
- receiver’s resistance factor
- base_strength from config
Returns the effective strength applied (0.0 if blocked by resistance).
Sourcepub fn apply_decay(&mut self, elapsed_seconds: f64)
pub fn apply_decay(&mut self, elapsed_seconds: f64)
Apply temporal decay — move all agents’ states toward their baselines. Call this periodically (e.g., every second).
Sourcepub fn affect_distance(&self, agent_a: &str, agent_b: &str) -> Option<f64>
pub fn affect_distance(&self, agent_a: &str, agent_b: &str) -> Option<f64>
Get the affect distance between two agents (Euclidean in PAD space).
Sourcepub fn agent_count(&self) -> usize
pub fn agent_count(&self) -> usize
Get number of registered agents.
Sourcepub fn get_history(&self, agent_id: &str) -> Option<&[AffectChange]>
pub fn get_history(&self, agent_id: &str) -> Option<&[AffectChange]>
Get affect change history for an agent.
Trait Implementations§
Source§impl Debug for AffectProcessor
impl Debug for AffectProcessor
Auto Trait Implementations§
impl Freeze for AffectProcessor
impl RefUnwindSafe for AffectProcessor
impl Send for AffectProcessor
impl Sync for AffectProcessor
impl Unpin for AffectProcessor
impl UnsafeUnpin for AffectProcessor
impl UnwindSafe for AffectProcessor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more