#[derive(Default, Debug)]
struct Target<'a> {
- labeling: Option<&'a Style>,
- major_ticks: Option<&'a Style>,
format: Option<(&'a SetFormat, Option<TargetType>)>,
}
impl<'a> Target<'a> {
}
}
}
- let mut target = Target::default();
+ let mut targets = Vec::new();
for set in &scp.sets {
match set {
- Set::SetStyle(set_style) => {
- if let Some(style) = set_style.style.get(&styles) {
- match TargetType::from_id(&set_style.target, graph, &major_ticks) {
- Some(TargetType::Labeling) => target.labeling = Some(style),
- Some(TargetType::MajorTicks) => target.major_ticks = Some(style),
- Some(TargetType::Interval) | Some(TargetType::Graph) | None => (),
- }
- }
- }
+ Set::SetStyle(_) => (),
Set::SetFormat(sf) => {
let target_type = TargetType::from_id(&sf.target, graph, &major_ticks);
- if target.format.is_some() {
- dbg!();
- }
- target.format = Some((sf, target_type))
+ targets.push(Target {
+ format: Some((sf, target_type)),
+ });
}
Set::SetFrameStyle(_) => (),
Set::SetMetaData(_) => (),
) {
(Some(union_), false) => {
for intersect in &union_.intersects {
- target.decode(
- scp,
- intersect,
- &mut look,
- &series,
- dims.as_mut_slice(),
- &mut data,
- &footnotes,
- cell_footnotes.is_some(),
- );
+ for target in &targets {
+ target.decode(
+ scp,
+ intersect,
+ &mut look,
+ &series,
+ dims.as_mut_slice(),
+ &mut data,
+ &footnotes,
+ cell_footnotes.is_some(),
+ );
+ }
}
}
(Some(_), true) => {
// Not implemented, not seen in the corpus.
}
(None, true) => {
- if target
- .format
- .is_some_and(|(_sf, target_type)| target_type == Some(TargetType::Labeling))
- {
- for value in data.values_mut() {
- Style::apply_to_value(
- value,
- target.format.map(|(sf, _target_type)| sf),
- None,
- None,
- &look.areas[Area::Data(RowParity::Even)],
- &footnotes,
- cell_footnotes.is_some(),
- );
+ for target in &targets {
+ if target.format.is_some_and(|(_sf, target_type)| {
+ target_type == Some(TargetType::Labeling)
+ }) {
+ for value in data.values_mut() {
+ Style::apply_to_value(
+ value,
+ target.format.map(|(sf, _target_type)| sf),
+ None,
+ None,
+ &look.areas[Area::Data(RowParity::Even)],
+ &footnotes,
+ cell_footnotes.is_some(),
+ );
+ }
}
}
}