diff --git a/CHANGELOG.md b/CHANGELOG.md index a16077006..2340aebdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased -- +### Added + +- Added a const `new` function for backends generated with the `ram_storage!` macro. + +### Removed + +- Removed unused arguments `filename_max_plus_one_ty` and `path_max_plus_one_ty` from `ram_storage!` and `const_ram_storage!` macros. ## [v0.7.2](https://github.com/trussed-dev/littlefs2/releases/tag/0.7.2) - 2026-06-10 diff --git a/src/macros.rs b/src/macros.rs index c6e448e75..e2fa00527 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -15,22 +15,26 @@ macro_rules! ram_storage { block_size=$block_size:expr, block_count=$block_count:expr, lookahead_size_ty=$lookahead_size:path, - filename_max_plus_one_ty=$filename_max_plus_one:path, - path_max_plus_one_ty=$path_max_plus_one:path, ) => { pub struct $Backend { buf: [u8; $block_size * $block_count], } - impl Default for $Backend { - fn default() -> Self { - $Backend { + impl $Backend { + pub const fn new() -> Self { + Self { buf: [$erase_value; $block_size * $block_count], } } } + impl Default for $Backend { + fn default() -> Self { + Self::new() + } + } + pub struct $Name<'backend> { backend: &'backend mut $Backend, } @@ -92,8 +96,6 @@ macro_rules! ram_storage { block_size = 128, block_count = $bytes / 128, lookahead_size_ty = $crate::consts::U1, - filename_max_plus_one_ty = $crate::consts::U256, - path_max_plus_one_ty = $crate::consts::U256, ); }; (tiny) => { @@ -107,8 +109,6 @@ macro_rules! ram_storage { block_size = 128, block_count = 8, lookahead_size_ty = $crate::consts::U1, - filename_max_plus_one_ty = $crate::consts::U256, - path_max_plus_one_ty = $crate::consts::U256, ); }; (large) => { @@ -122,8 +122,6 @@ macro_rules! ram_storage { block_size = 256, block_count = 512, lookahead_size_ty = $crate::consts::U4, - filename_max_plus_one_ty = $crate::consts::U256, - path_max_plus_one_ty = $crate::consts::U256, ); }; } @@ -140,8 +138,6 @@ macro_rules! const_ram_storage { block_size=$block_size:expr, block_count=$block_count:expr, lookahead_size_ty=$lookahead_size:path, - filename_max_plus_one_ty=$filename_max_plus_one:path, - path_max_plus_one_ty=$path_max_plus_one:path, ) => { pub struct $Name { @@ -215,8 +211,6 @@ macro_rules! const_ram_storage { block_size = 512, block_count = $bytes / 512, lookahead_size_ty = $crate::consts::U1, - filename_max_plus_one_ty = $crate::consts::U256, - path_max_plus_one_ty = $crate::consts::U256, ); }; } diff --git a/src/tests.rs b/src/tests.rs index 33cc6dbd2..c676ef835 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -17,8 +17,6 @@ ram_storage!( block_size = 256, block_count = 512, lookahead_size_ty = consts::U1, - filename_max_plus_one_ty = consts::U256, - path_max_plus_one_ty = consts::U256, ); ram_storage!( @@ -31,8 +29,6 @@ ram_storage!( block_size = 20 * 35, block_count = 32, lookahead_size_ty = consts::U16, - filename_max_plus_one_ty = consts::U256, - path_max_plus_one_ty = consts::U256, ); #[cfg(feature = "unstable-littlefs-patched")] @@ -46,8 +42,6 @@ ram_storage!( block_size = 20 * 35, block_count = 64, lookahead_size_ty = consts::U16, - filename_max_plus_one_ty = consts::U256, - path_max_plus_one_ty = consts::U256, ); #[test] diff --git a/tests/ui/constructors-fail.rs b/tests/ui/constructors-fail.rs index ebc701e1c..8164cede5 100644 --- a/tests/ui/constructors-fail.rs +++ b/tests/ui/constructors-fail.rs @@ -16,8 +16,6 @@ ram_storage!( block_size=256, block_count=512, lookaheadwords_size_ty=consts::U2, - filename_max_plus_one_ty=consts::U256, - path_max_plus_one_ty=consts::U256, result=Result, ); @@ -32,8 +30,6 @@ ram_storage!( block_size=20*35, block_count=32, lookaheadwords_size_ty=consts::U2, - filename_max_plus_one_ty=consts::U256, - path_max_plus_one_ty=consts::U256, result=Result, ); diff --git a/tests/ui/sync-fail.rs b/tests/ui/sync-fail.rs index 3954abf1a..6f2bc78c6 100644 --- a/tests/ui/sync-fail.rs +++ b/tests/ui/sync-fail.rs @@ -16,8 +16,6 @@ ram_storage!( block_size=256, block_count=512, lookaheadwords_size_ty=consts::U2, - filename_max_plus_one_ty=consts::U256, - path_max_plus_one_ty=consts::U256, result=Result, ); @@ -32,8 +30,6 @@ ram_storage!( block_size=20*35, block_count=32, lookaheadwords_size_ty=consts::U2, - filename_max_plus_one_ty=consts::U256, - path_max_plus_one_ty=consts::U256, result=Result, );