ansiq-core
ansiq-core 负责模型层:
Element- signals 与 reactive runtime
- style 与 color types
- history 与 transcript data
- widget state types
它的职责可以压成一句话:
定义全框架共享的语言,但不直接更新 terminal。
你通常会在这里遇到什么
响应式原语
signalcomputedeffect
这是 app 和组件最常先接触到的一层。
let query = cx.signal(String::new);
let is_empty = cx.computed({
let query = query.clone();
move || query.get().trim().is_empty()
});如果你现在最关心的是这些 API 的边界,先读:
共享数据模型
ansiq-core 还定义跨 crate 传递的数据结构,例如:
ElementColor/StyleHistoryBlockTranscriptEntryListState/TableState/ScrollbarState
这些类型的重要性在于:
- widgets 围绕它们构造 props
- runtime 围绕它们做 continuity 和 routing
- surface 围绕它们处理 history / viewport
核心协议
现在一部分纯协议也已经下沉到 core,例如:
- runtime state continuity
- widget key routing
- layout / render math 的纯计算帮助函数
所以 ansiq-core 不只是“reactivity crate”,而是共享契约层。
什么时候应该先看它
适合先读 ansiq-core 的场景:
- 你想理解
signal / computed / effect的真实边界 - 你想知道某个
State类型为什么长这样 - 你在 debug continuity、history、style 这类跨层问题
- 你在给 runtime / widgets / surface 提交改动
什么时候不该从这里开始
如果你的问题是:
- “怎么跑一个 app?”
- “
RuntimeHandle有哪些方法?” - “viewport 策略怎么选?”
那应该先去看:
推荐继续阅读
Last updated on