#sdcardreader
USB 3.0 Micro SD Card Reader – Dual Slots Card Adapter for Fast Data Transfer.
.
.
👉 Get More Info Here: tinyurl.com/29hz24yf
.
.
#SDCardReader #MicroSDCardReader #USB30 #CardReaderAdapter #TechAccessories #DataTransfer #PhotographyGear
February 1, 2026 at 3:29 PM
Llano F17 High-Speed 2-in-1 SD and Micro SD Card Reader and Storage Case #tinoreviews #llano #sdcardreader #contentcreatortips #tiktokshopbacktoschool
September 6, 2026 at 4:08 PM
Acer 2-in-1 SD Card Reader #tinoreviews #acer #sdcardreader #contentcreatortools #tiktokshopsparkcreator
April 25, 2026 at 7:02 PM
Embedded Rust - borrowed value does not live long enough
For some reason, when I add `SdCardReader::new(&mut my_file);`, rust will start frowning errors about lifetime. I still can't wrap my head around lifetimes (or at least good enough to solve this issue myself), so here I'm asking for help ;D **main.rs** : use embedded_sdmmc::*; [...] type SimpleFile<'a> = &'a mut File<'a, SdCard<ExclusiveDevice<esp_hal::spi::master::Spi<'a, Blocking>, Output<'a>, Delay>, Delay>, SdMmcClock, 4, 4, 1>; struct SdCardReader<'a> { file: SimpleFile<'a>, buffer: [u8; 32], // Fixed-size buffer for stb_vorbis buffer_pos: usize, buffer_size: usize, eof: bool, } impl<'a> SdCardReader<'a> { fn new(file: SimpleFile<'a>) -> Self { Self { file: file, buffer: [0u8; 32], buffer_pos: 0, buffer_size: 0, eof: false, } } } [...] fn main() -> ! { [...] let mut volume_mgr = embedded_sdmmc::VolumeManager::new(sdcard, time_source); let mut volume0 = volume_mgr.open_volume(embedded_sdmmc::VolumeIdx(0)).unwrap(); let mut root_dir = volume0.open_root_dir().unwrap(); let mut my_file = root_dir.open_file_in_dir("1mb.mp3", embedded_sdmmc::Mode::ReadOnly).unwrap(); SdCardReader::new(&mut my_file); [...] } **Error Messages** : $ cargo run --release [...] error[E0597]: `volume0` does not live long enough --> src/main.rs:174:24 | 173 | let mut volume0 = volume_mgr.open_volume(embedded_sdmmc::VolumeIdx(0)).unwrap(); | ----------- binding `volume0` declared here 174 | let mut root_dir = volume0.open_root_dir().unwrap(); | ^^^^^^^ borrowed value does not live long enough ... 223 | } | - | | | `volume0` dropped here while still borrowed | borrow might be used here, when `volume0` is dropped and runs the `Drop` code for type `Volume` error[E0597]: `root_dir` does not live long enough --> src/main.rs:175:23 | 174 | let mut root_dir = volume0.open_root_dir().unwrap(); | ------------ binding `root_dir` declared here 175 | let mut my_file = root_dir.open_file_in_dir("1mb.mp3", embedded_sdmmc::Mode::ReadO... | ^^^^^^^^ borrowed value does not live long enough ... 223 | } | - | | | `root_dir` dropped here while still borrowed | borrow might be used here, when `root_dir` is dropped and runs the `Drop` code for type `Directory` error[E0597]: `my_file` does not live long enough --> src/main.rs:177:23 | 175 | let mut my_file = root_dir.open_file_in_dir("1mb.mp3", embedded_sdmmc::Mode::ReadO... | ----------- binding `my_file` declared here 176 | 177 | SdCardReader::new(&mut my_file); | ^^^^^^^^^^^^ borrowed value does not live long enough ... 223 | } | - | | | `my_file` dropped here while still borrowed | borrow might be used here, when `my_file` is dropped and runs the `Drop` code for type `File` [...] Mind that I can't use std, because I deploy this code on an ESP32.
users.rust-lang.org
December 5, 2024 at 9:36 PM