Fix all 33 rustdoc warnings across the workspace:
- Unresolved intra-doc links: rewrite [`name`] → either backtick text
(when not actually a link) or fully-qualified `[Type::method]` /
`[crate::module::name]` form. Affected: mxaccess-codec
(asb_variant, item_control, metadata_query, observed_write_template,
reference_handle, write_message), mxaccess-rpc (pdu), mxaccess-nmx
(client), mxaccess-asb-nettcp (nmf), mxaccess-callback (exporter),
mxaccess (asb_session, session, lib).
- Bracket-text being interpreted as link refs (e.g. `body[17]` →
`` `body[17]` ``).
- Private-item references in public docs (CALLBACK_BROADCAST_CAPACITY,
recover_connection_core, mxvalue_to_writevalue) reduced to
backtick-text since they aren't part of the public API.
`RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps` now
exits clean. Workspace 759 tests pass; clippy clean.
Defers `#![warn(missing_docs)]` lint to a future pass — the cleanup
target is the broken-link warnings, which are signal; missing-docs
would surface hundreds of low-priority public-item gaps that are out
of scope for this F-number.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Implements the 13 record types from `[MS-NMF]` §2.2 (Version, Mode, Via,
KnownEncoding, ExtensibleEncoding, Unsized/SizedEnvelope, End, Fault,
UpgradeRequest/Response, PreambleAck, PreambleEnd) over a `net.tcp` channel.
Includes the `Multibyte Int31` length codec (LEB128-style 7-bit groups
over a 31-bit unsigned range, max 5 bytes; rejects negative input and
overflow), plus an `encode_preamble` helper that emits the canonical ASB
connect record sequence (`Version 1.0 → Duplex → Via $uri →
BinaryWithDictionary → PreambleEnd`).
Pure codec — no I/O. Encoders write into a `Vec<u8>`; decoders parse
from a `&[u8]` slice and return the consumed-byte count alongside the
record. Higher-level connect/request/response orchestration stays in the
M5 ASB client (`mxaccess-asb`, F25).
24 new unit tests cover round-trip for every record type, multibyte-int31
boundary cases (0, 1, 127, 128, 16383, 16384, 200, i32::MAX), preamble
emission against the canonical ASB sequence, byte-layout pinning for
Version/Mode/KnownEncoding, and rejection of unknown record/mode/encoding
bytes plus truncated sized-envelope frames.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>