sim: Use a trait object for TlvGen
In preparation for adding support for differing manifest types, abstract
the TlvGen with a trait object `ManifestGen`. This will allow alternate
implementations to be made.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/image.rs b/sim/src/image.rs
index e41d1cd..3404ddd 100644
--- a/sim/src/image.rs
+++ b/sim/src/image.rs
@@ -19,7 +19,7 @@
use simflash::{Flash, SimFlashMap};
use mcuboot_sys::{c, AreaDesc};
use crate::caps::Caps;
-use crate::tlv::{TlvGen, TlvFlags, AES_SEC_KEY};
+use crate::tlv::{ManifestGen, TlvGen, TlvFlags, AES_SEC_KEY};
impl Images {
/// A simple upgrade without forced failures.
@@ -662,7 +662,7 @@
let slot_len = slots[slot].len;
let dev_id = slots[slot].dev_id;
- let mut tlv = make_tlv();
+ let mut tlv: Box<dyn ManifestGen> = Box::new(make_tlv());
const HDR_SIZE: usize = 32;