v0.13.0 — vendor-profile plumbing
Vendor-profile plumbing across the workspace.
crates.io: rustnetconf 0.13.0 · rustnetconf-cli 0.3.4 · rustnetconf-yang 0.1.4 (unchanged)
Highlights
DevicePoolhonors an explicit vendor profile.DeviceConfig.vendoris now wired into connection setup — previously it was silently ignored. The field changed fromBox<dyn VendorProfile>toArc<dyn VendorProfile>; newClientBuilder::vendor_profile_arc()andSession::set_vendor_profile_arc()support the shared-ownership path. The existingvendor_profile(Box<…>)API is unchanged. (#37)- New
Client::unwrap_config()/Session::unwrap_config()— exposes the connected device's vendorunwrap_config; additive public API. (#38) - Vendor-aware CLI diffs.
netconf plan/applynormalize the desired config through the connected device's vendor profile instead of a hardcoded<configuration>strip. Fixes an asymmetric, potentially wrong diff against generic (non-Junos) devices; Junos behavior unchanged. (#38)
Compatibility
- Source-breaking (library):
DeviceConfig.vendoris nowOption<Arc<dyn VendorProfile>>. Wrap explicit profiles inArc::new(...)instead ofBox::new(...). - Internally,
VendorProfile::post_facts_hooktakes&self(withJunosVendorcluster state moved to interior mutability) so profiles work underArc.
Full diff: v0.12.3...v0.13.0