pub fn validate_source(source: &Source) -> ValidationResultExpand description
A single backup Source is well-formed: exactly one of pvc,
pvcSelector, nfs, or stream is set (ADR §3.3 — modeled as sibling Options
because the forms share sourcePath* keys, so it’s a webhook check, not an
enum), and that form’s own content is valid.
The dispatch is an EXHAUSTIVE match over SourceShape rather than a chain of
if lets: a fifth source form then cannot compile until it is given content
validation here, instead of silently falling through with none.