Spxg / fat32

[New Version] This is FAT32 FileSystem Library, which is #![no_std] and does not use alloc.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extreme amount of implicit copies of `T: BlockDevice`

MathiasKoch opened this issue · comments

Hi!

We are looking to use this crate in embedded, but are currently a bit hessitant due to the extreme amount of implicit copies of device throughout the crate. It is ALOT.

Ideally device shouldn't even be clone, as that is the actual peripheral (QuadSPI flash in our case)

I did a small experiment with relaxing the + Clone + Copy trait bounds in T, and i think it should be possible with minor refactors and the introduction of some additional lifetimes, but my knowledge of FAT32 & the crate in general is a bit limited.

commented

Thank you for your advice.
I don't know much about the embedded. I developed this library for my IAP bootloader, so I didn't consider some scenarios.
I will refactor this crate. If you have other good suggestions or requirements, please let me know.

commented

Thank you for your advice. I don't know much about the embedded. I developed this library for my IAP bootloader, so I didn't consider some scenarios. I will refactor this crate. If you have other good suggestions or requirements, please let me know.

Refactoring will take a long time. Before that, you can try to remove Clone + Copy to meet your needs. Clone + Copy is used in FAT and Dir structure.

Hi,

Thanks for replying so fast. After searching a bit further, i found everything i needed and more in the https://github.com/rafalh/rust-fatfs crate.