Move NetEvent/NetAction/RegReply/Protocol and Sender/ServiceCtx into a dependency-free fedserv-api crate that a module builds against. Core keeps referring to them through re-export shims at crate::proto and crate::engine::service, so no consumer changes. Groundwork for external service and protocol modules. |
||
|---|---|---|
| .. | ||
| chanserv | ||
| nickserv | ||
| protocol | ||
| README.md | ||
modules/
The pluggable parts of fedserv: one directory per protocol and per pseudoclient.
The core (engine, event log, gossip, link loop) stays in ../src/.
modules/
protocol/ ircd link protocols (inspircd.rs)
nickserv/ NickServ pseudoclient
chanserv/ ChanServ pseudoclient
src/main.rs pulls each in with #[path = "../modules/..."], so crate paths
stay flat (crate::proto, crate::nickserv, crate::chanserv).
Naming
A service directory holds its pseudoclient file plus, as commands are split out,
one file per command: register.rs, mode.rs, etc.