refactor(core): implement BidiStreamSource trait + AuthContext::anonymous (ADR-070, REQ-CORE-01/02/03)
Extract stream-yield ops from Connection into a BidiStreamSource trait; Connection now holds Box<dyn BidiStreamSource> instead of the closed ConnectionKind enum. Three crate-private impls wrap the existing constructors: QuinnBidiStreamSource (feature quinn), IrohBidiStreamSource (feature iroh), StreamBidiStreamSource (no gate, yield-once per ADR-065). Public Connection API is preserved verbatim — handlers dispatch through the trait object transparently. The StreamBidiStreamSource::close impl prefixes code/reason with _ and documents why they're ignored (the drop is the close — ADR-065). This resolves the ADR-065 leftover clippy warning under --no-default-features (REQ-CORE-02). Add AuthContext::anonymous(alpn) convenience constructor (REQ-CORE-03): sets identity/fingerprint/remote_addr to None, only alpn is populated. Removes the four-None-field literal that recurred in handler POCs/tests. Verified: cargo test + clippy clean across default, --no-default-features, --features iroh, and --all-features; cargo check -p alknet-call succeeds unchanged; cargo fmt --check passes.
This commit is contained in:
1 parent
f8f5f27ce0
commit
60cce228d2
3 files changed
+178
-66
No files matched your search
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: core/bidistreamsource-trait
|
||||
name: "Implement BidiStreamSource trait + AuthContext::anonymous (ADR-070, REQ-CORE-01/02/03)"
|
||||
status: pending
|
||||
status: completed
|
||||
depends_on: []
|
||||
scope: broad
|
||||
risk: medium
|
||||
|
||||
Reference in new issue
Block a user