pub trait NeuronIO {
fn read_sensory(&self, field_id: u8, offset: u16) -> i16;
fn write_motor(&mut self, channel_id: u8, magnitude: i16);
fn memory_query(&mut self, bank_slot: u8, query: &[i16], top_k: u8) -> i16;
fn memory_match(&self, bank_slot: u8, pattern: &[i16]) -> i16;
fn read_chemical(&self, chemical_id: u8) -> u8;
}
pub struct NullIO;
impl NeuronIO for NullIO {
#[inline]
fn read_sensory(&self, _field_id: u8, _offset: u16) -> i16 { 0 }
#[inline]
fn write_motor(&mut self, _channel_id: u8, _magnitude: i16) {}
#[inline]
fn memory_query(&mut self, _bank_slot: u8, _query: &[i16], _top_k: u8) -> i16 { 0 }
#[inline]
fn memory_match(&self, _bank_slot: u8, _pattern: &[i16]) -> i16 { 0 }
#[inline]
fn read_chemical(&self, _chemical_id: u8) -> u8 { 0 }
}