Module backend_dispatcher

Module backend_dispatcher 

Source
Expand description

StaticBackendDispatcher trait implementations.

crate::dispatcher::StaticBackendDispatcher is the enum that wraps a CSM or an OCHAMI backend; the trait impls live here so the enum stays a pure data type and the routing logic lives next door to the imports it needs. Each backend trait from manta-backend-dispatcher::interfaces::* gets its own sibling file under this module.

§Structure

Sibling files do use super::*; to pick up the shared trait, type, and macro imports defined here, so an individual impl file only needs to declare the impl block. The dispatch! macro is textually scoped: it’s visible to every mod declaration that follows it in this file.

§Why every trait needs an explicit forward

Some traits in manta-backend-dispatcher ship a default “not implemented” body for each method. If a trait isn’t explicitly implemented here, every method call falls through to that default — silently returning “not implemented” even when the underlying CSM or OCHAMI backend would have handled it. The apply_sat_image_create_session regression was exactly this shape, so the rule is: any trait a handler reaches through must have a sibling file under this module, even if the body is a straight dispatch! forward.