narust-158 0.3.1

A Rust reimplementation of OpenNARS 1.5.8
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! 🆕抽象出「输入通道」与「输出通道」的共同特征
//! * 🎯替代[推理器](crate::control::Reasoner)中的`removeXXXXXChannel`方法
//!   * 不违反借用规则,同时也无需判等

/// 🆕统一「输入通道」「输出通道」的「通道」类型
/// * 🎯替代并整合推理器中「移除通道」的方法——标记删除法
///   * 🚩核心逻辑:标记「待删除」然后让推理器自行决定
///
/// * 🚩【2024-06-19 17:39:50】现在放弃在其中记录「推理器」引用,同时也放弃有关「类型上下文」的设定
pub trait Channel {
    /// 🆕判断是否「应该被移除」
    /// * 🚩推理器在下次遍历通道之前,会先移除所有在此返回`true`的
    /// * 🎯替代`reasoner.removeInputChannel(this);`
    ///   * 📌动态分派的**特征对象难以判等**
    fn need_remove(&self) -> bool;
}