This release contains many small changes to the public API. It also introduces the
littlefs2-core
crate that can be used for crates that want to access littlefs2
filesystems without depending on a specific implementation version.
Added
- Added object-safe traits
DynFile
,DynFilesystem
andDynStorage
for
accessingStorage
,Filesystem
andFile
implementations for any storage. - Added
Filesystem::mount_or_else
function (#57) - Marked
Path::is_empty
,Path::from_bytes_with_nul
,Path::from_cstr
,Path::from_cstr_unchecked
,Path::as_str_ref_with_trailing_nul
,Path::as_str
, andPathBuf::new
asconst
. - Made
fs::FileOpenFlags
public and addedFrom<fs::FileOpenFlags>
forfs::OpenOptions
. - Support platforms where
c_int
is noti32
.
Fixed
- Fixed macro hygiene for
path!
. - Fixed build error that would occur on Windows systems.
- Fixed compilation without default features.
- Added path iteration utilities (#47)
Changed
- Enforced const evaluation for
path!
. - Removed
cstr_core
andcty
dependencies. - Updated
littlefs2-sys
dependency to 0.2.0. - Replace all panicking
Path
/PathBuf
conversions with fallible alternatives:- Return a
Result
fromPath::from_str_with_nul
. - Replace the
From<_>
implementations forPath
andPathBuf
withTryFrom<_>
, except forFrom<&Path> for PathBuf
.
- Return a
- Refactor error types:
- Change
Error
enum to a struct with associated constants. - Remove
Error::Success
and enforce negative values forError
.
- Change
- Replace
Path::exists
withFilesystem::exists
- Replace
DynFilesystem::open_file_with_options_and_then{,unit}
withDynFilesystem::open_file_with_flags_and_then{,unit}
usingFileOpenFlags
instead ofOpenOptionsCallback
- Refactor attributes API:
- Change the
set_attribute
function inDynFilesystem
andFilesystem
to accept an ID and a slice instead of anAttribute
. - Add a buffer argument to the
attribute
function inDynFilesystem
andFilesystem
and return a slice of that buffer containing the read data. - Change the
Attribute
struct to store a slice with the read data and the total size of the attribute on the filesystem.
- Change the
- Introduce
object_safe::Vec
trait and changeDynFile::read_to_end
,DynFilesystem::read
andDynFilesstem::read_chunk
to be generic over aVec
implementation to support multipleheapless
versions (disabled by default).
Removed
- Removed
Path::from_bytes_with_nul_unchecked
. UseCStr::from_bytes_with_nul_unchecked
andPath::from_cstr_unchecked
instead. - Removed
From<littlefs2::path::Error> for littlefs2::io::Error
. - Removed
object_safe::OpenOptionsCallback
. - Removed
consts::ATTRBYTES_MAX_TYPE
. - Removed
dir-entry-path
feature (now always enabled).