aboutsummaryrefslogtreecommitdiff
path: root/embassy-boot/boot/src
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2022-09-20 09:42:40 +0200
committerUlf Lilleengen <[email protected]>2022-09-20 09:54:37 +0200
commitd0fe654c82b548d65f49213ad50fc2edc5b3d71e (patch)
treed6262cf0aa28b85d30459c4148273393aa66492a /embassy-boot/boot/src
parent66633902240a70eaf7b2bc6db285884ccdd8182f (diff)
Remove BootFlash borrow
Compiler will infer a different lifetime for BootFlash than for the borrowed flash, which makes it require more type annotations than if it was just owning the type. Since it doesn't really matter if it owns or borrows in practical use, change it to own so that it simplifies usage.
Diffstat (limited to 'embassy-boot/boot/src')
-rw-r--r--embassy-boot/boot/src/lib.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/embassy-boot/boot/src/lib.rs b/embassy-boot/boot/src/lib.rs
index 4a2b112a9..015dd58db 100644
--- a/embassy-boot/boot/src/lib.rs
+++ b/embassy-boot/boot/src/lib.rs
@@ -447,24 +447,24 @@ where
447} 447}
448 448
449/// A flash wrapper implementing the Flash and embedded_storage traits. 449/// A flash wrapper implementing the Flash and embedded_storage traits.
450pub struct BootFlash<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8 = 0xFF> 450pub struct BootFlash<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8 = 0xFF>
451where 451where
452 F: NorFlash + ReadNorFlash, 452 F: NorFlash + ReadNorFlash,
453{ 453{
454 flash: &'a mut F, 454 flash: F,
455} 455}
456 456
457impl<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> BootFlash<'a, F, BLOCK_SIZE, ERASE_VALUE> 457impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
458where 458where
459 F: NorFlash + ReadNorFlash, 459 F: NorFlash + ReadNorFlash,
460{ 460{
461 /// Create a new instance of a bootable flash 461 /// Create a new instance of a bootable flash
462 pub fn new(flash: &'a mut F) -> Self { 462 pub fn new(flash: F) -> Self {
463 Self { flash } 463 Self { flash }
464 } 464 }
465} 465}
466 466
467impl<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Flash for BootFlash<'a, F, BLOCK_SIZE, ERASE_VALUE> 467impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Flash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
468where 468where
469 F: NorFlash + ReadNorFlash, 469 F: NorFlash + ReadNorFlash,
470{ 470{
@@ -472,14 +472,14 @@ where
472 const ERASE_VALUE: u8 = ERASE_VALUE; 472 const ERASE_VALUE: u8 = ERASE_VALUE;
473} 473}
474 474
475impl<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ErrorType for BootFlash<'a, F, BLOCK_SIZE, ERASE_VALUE> 475impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ErrorType for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
476where 476where
477 F: ReadNorFlash + NorFlash, 477 F: ReadNorFlash + NorFlash,
478{ 478{
479 type Error = F::Error; 479 type Error = F::Error;
480} 480}
481 481
482impl<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> NorFlash for BootFlash<'a, F, BLOCK_SIZE, ERASE_VALUE> 482impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> NorFlash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
483where 483where
484 F: ReadNorFlash + NorFlash, 484 F: ReadNorFlash + NorFlash,
485{ 485{
@@ -487,26 +487,26 @@ where
487 const ERASE_SIZE: usize = F::ERASE_SIZE; 487 const ERASE_SIZE: usize = F::ERASE_SIZE;
488 488
489 fn erase(&mut self, from: u32, to: u32) -> Result<(), Self::Error> { 489 fn erase(&mut self, from: u32, to: u32) -> Result<(), Self::Error> {
490 F::erase(self.flash, from, to) 490 F::erase(&mut self.flash, from, to)
491 } 491 }
492 492
493 fn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), Self::Error> { 493 fn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), Self::Error> {
494 F::write(self.flash, offset, bytes) 494 F::write(&mut self.flash, offset, bytes)
495 } 495 }
496} 496}
497 497
498impl<'a, F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ReadNorFlash for BootFlash<'a, F, BLOCK_SIZE, ERASE_VALUE> 498impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ReadNorFlash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
499where 499where
500 F: ReadNorFlash + NorFlash, 500 F: ReadNorFlash + NorFlash,
501{ 501{
502 const READ_SIZE: usize = F::READ_SIZE; 502 const READ_SIZE: usize = F::READ_SIZE;
503 503
504 fn read(&mut self, offset: u32, bytes: &mut [u8]) -> Result<(), Self::Error> { 504 fn read(&mut self, offset: u32, bytes: &mut [u8]) -> Result<(), Self::Error> {
505 F::read(self.flash, offset, bytes) 505 F::read(&mut self.flash, offset, bytes)
506 } 506 }
507 507
508 fn capacity(&self) -> usize { 508 fn capacity(&self) -> usize {
509 F::capacity(self.flash) 509 F::capacity(&self.flash)
510 } 510 }
511} 511}
512 512