pub struct Mapping {
pub mapping_id: Uuid,
pub edge_id: String,
pub device_type: String,
pub device_id: String,
pub service_type: String,
pub service_target: String,
pub routes: Vec<Route>,
pub feedback: Vec<FeedbackRule>,
pub active: bool,
pub target_candidates: Vec<TargetCandidate>,
pub target_switch_on: Option<String>,
}Expand description
A device-to-service mapping. Mirrors the structure already used by
weave-server’s REST API. edge_id is new; all other fields retain
their existing semantics.
Fields§
§mapping_id: Uuid§edge_id: String§device_type: String§device_id: String§service_type: String§service_target: String§routes: Vec<Route>§feedback: Vec<FeedbackRule>§active: bool§target_candidates: Vec<TargetCandidate>Ordered list of candidate service_target values the edge can cycle
through at runtime. Empty = switching disabled.
target_switch_on: Option<String>Input primitive (snake-case InputType name, e.g. "long_press")
that enters selection mode on the device. None = feature disabled
for this mapping, regardless of target_candidates.
MVP constraint (not enforced in-schema): at most one mapping per
(edge_id, device_id) should set this; the edge router picks the
first encountered if multiple are set.
Implementations§
Source§impl Mapping
impl Mapping
Sourcepub fn effective_for<'a>(&'a self, target: &str) -> (&'a str, &'a [Route])
pub fn effective_for<'a>(&'a self, target: &str) -> (&'a str, &'a [Route])
Resolve the effective (service_type, routes) for a given target.
If target matches a target_candidates entry with overrides,
those win; otherwise the mapping’s own fields are returned.
Callers on the routing hot path should pass the currently active
service_target to get the right adapter + intent table for the
next emitted RoutedIntent.