pub struct SupervisorRescanResult {
pub added: Vec<String>,
pub removed: Vec<String>,
pub changed_pending_reload: Vec<String>,
pub enabled_changes: Vec<String>,
pub unchanged: u32,
pub preview: bool,
pub restart_required: Vec<String>,
pub capability_warnings: Vec<String>,
}Fields§
§added: Vec<String>§removed: Vec<String>§changed_pending_reload: Vec<String>§enabled_changes: Vec<String>Modules whose enabled flag differs between config and running state.
Rescan calls set_enabled for these, so omitting them made the preview
describe two of the three mutation classes it performs. A module changing
only its enabled flag landed in no bucket at all – not added, removed or
changed, and deliberately not counted as unchanged either – so the sole
evidence was that the buckets no longer summed to the configured module
count. A preview is consulted precisely when someone is being careful,
which is the worst place to under-report.
Empty is skipped so consumers written against the older shape keep parsing.
unchanged: u32§preview: boolTrue when this reconciliation was computed but NOT applied.
Carried on the result rather than left to the caller’s memory of what it asked for. A preview and an execution are otherwise byte-identical, so a reader who meets this output later – in a log, a transcript, a pasted snippet – cannot tell which one happened. Absent when false, so existing consumers see the shape they already parse.
restart_required: Vec<String>Config sections that changed but which rescan CANNOT apply, so the operator learns a daemon restart is required from the command they just ran rather than from the journal.
The daemon has always detected this and logged a warning. A warning in a
log is addressed to whoever is reading the log, and the person who just
edited the config is by construction looking at the CLI instead: reported
by an outside contributor after a module crash-looped through four
respawns because a new top-level storage section was silently not
applied, diagnosable only by journal archaeology.
Names the SECTIONS rather than a boolean, because “something else changed” sends the operator back to diffing their own file – which is the work the message exists to save.
Empty is skipped, so consumers written against the older shape keep parsing.
capability_warnings: Vec<String>Required capabilities that a dry-run’s resulting module set would leave unprovided. Rows are human-readable because the preview is an operator explanation, not a second manifest schema.
Trait Implementations§
Source§impl Clone for SupervisorRescanResult
impl Clone for SupervisorRescanResult
Source§fn clone(&self) -> SupervisorRescanResult
fn clone(&self) -> SupervisorRescanResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more