From 4a5eb97ab2d03b15d7e66bb5fd717c6b77419ceb Mon Sep 17 00:00:00 2001 From: Jaby Date: Sat, 3 Dec 2022 03:08:10 +0100 Subject: [PATCH] Small improvements --- src/Tools/Tests/Overlay.json | 1 - .../mkoverlay/src/types/json_reader/mod.rs | 19 ++++++++++++++----- src/Tools/mkoverlay/src/types/mod.rs | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Tools/Tests/Overlay.json b/src/Tools/Tests/Overlay.json index 58fd7144..16469dd2 100644 --- a/src/Tools/Tests/Overlay.json +++ b/src/Tools/Tests/Overlay.json @@ -8,7 +8,6 @@ } }, "slot_1": { - "following": "slot_0", "blubb": { "pattern": ["cody/*"] } diff --git a/src/Tools/mkoverlay/src/types/json_reader/mod.rs b/src/Tools/mkoverlay/src/types/json_reader/mod.rs index fc18adf0..6006c880 100644 --- a/src/Tools/mkoverlay/src/types/json_reader/mod.rs +++ b/src/Tools/mkoverlay/src/types/json_reader/mod.rs @@ -1,13 +1,22 @@ use super::{OverlaySection, OverlaySlot}; use tool_helper::{Error, format_if_error, Input}; +const FOLLOW_KEYWORD:&'static str = "following"; + pub fn read_config(input: Input) -> Result, Error> { let json_reader:serde_json::Value = format_if_error!(serde_json::from_reader(input), "Parsing JSON failed with: {error_text}")?; - let mut overlay_slots = Vec::new(); + let mut overlay_slots = Vec::::new(); if let Some(objects) = json_reader.as_object() { for object in objects { - overlay_slots.push(read_as_slot(object)?); + let mut slot = read_as_slot(object)?; + if slot.start_adr.is_none() { + if let Some(prev_slot) = overlay_slots.last() { + slot.set_start_adr_as_end_of(prev_slot.name.as_ref()); + } + } + + overlay_slots.push(slot); } Ok(overlay_slots) @@ -24,13 +33,13 @@ fn read_as_slot(json_value: (&String, &serde_json::Value)) -> Result