in tools/hakari/src/hakari.rs [1087:1122]
fn describe<'a>(&'a self) -> ValueDescribe<'g, 'a> {
match (self.target_inner.len(), self.host_inner.len()) {
(0, 0) => ValueDescribe::None,
(0, 1) => ValueDescribe::SingleHost(&self.host_inner),
(1, 0) => ValueDescribe::SingleTarget(&self.target_inner),
(1, 1) => {
let target_features = self.target_inner.keys().next().expect("1 element");
let host_features = self.host_inner.keys().next().expect("1 element");
if target_features == host_features {
ValueDescribe::SingleMatchingBoth {
target_inner: &self.target_inner,
host_inner: &self.host_inner,
}
} else {
ValueDescribe::SingleNonMatchingBoth {
target_inner: &self.target_inner,
host_inner: &self.host_inner,
}
}
}
(_m, 0) => ValueDescribe::MultiTarget(&self.target_inner),
(_m, 1) => ValueDescribe::MultiTargetSingleHost {
target_inner: &self.target_inner,
host_inner: &self.host_inner,
},
(0, _n) => ValueDescribe::MultiHost(&self.host_inner),
(1, _n) => ValueDescribe::MultiHostSingleTarget {
target_inner: &self.target_inner,
host_inner: &self.host_inner,
},
(_m, _n) => ValueDescribe::MultiBoth {
target_inner: &self.target_inner,
host_inner: &self.host_inner,
},
}
}