}
}
- fn insert_labels(
- &mut self,
- data: &[Datum<String>],
- label_series: &Series,
- format: crate::format::Format,
- ) {
- for (value, label) in data.iter().zip(label_series.values.iter()) {
- if let Some(Some(number)) = value.as_number() {
- let dest = match label {
- Datum::Number(_) => label.display(format).with_stretch().to_string(),
- Datum::String(s) => s.clone(),
- };
- self.0.insert(OrderedFloat(number), Datum::String(dest));
- }
- }
- }
-
fn from_vmes(value_map: &[ValueMapEntry]) -> Self {
let mut map = Map::new();
for vme in value_map {
Map::from_string_format(string_format).apply(&mut data);
};
if let Some(label_series) = label_series {
- let mut map = Map::new();
- map.insert_labels(
- &data,
- label_series,
- self.format.as_ref().map_or(F8_0, |f| f.decode()),
- );
- map.apply(&mut data);
+ let format = self.format.as_ref().map_or(F8_0, |f| f.decode());
+ data = label_series
+ .values
+ .iter()
+ .map(|label| {
+ if label.is_number() {
+ Datum::String(label.display(format).with_stretch().to_string())
+ } else {
+ label.clone()
+ }
+ })
+ .collect();
}
series.insert(
&self.id,