Rafał Harabień
1f8f8365d6
Add TimeProvider trait and time_provider option
...
This functionality is very useful for embedded usage where chrono feature
cannot be enabled.
2018-06-28 18:43:02 +02:00
Rafał Harabień
30f3f96537
Improve code style using rustfmt
2018-06-28 18:13:07 +02:00
Rafał Harabień
a672add4e7
Remove unnecessary clone() calls
2018-06-23 14:49:16 +02:00
Rafał Harabień
04887faaea
Improve docs
2018-06-20 19:08:50 +02:00
Rafał Harabień
a6b66f9434
Make errors more consistent with std::fs
2018-06-17 23:11:53 +02:00
Rafał Harabień
11a39fdaae
Improve/fix API docs
2018-06-16 18:35:56 +02:00
Rafał Harabień
217b6046f1
Make disk object type generic (breaking change)
...
This change allows for moving an object ownership to FileSystem object
instead of borrowing it. It makes usage of library easier in some cases.
Unfortunately it is a breaking change.
2018-06-13 23:24:08 +02:00
Rafał Harabień
4f6ed94cb3
Limit file size to 4GB when writting
2018-06-09 19:32:15 +02:00
Rafał Harabień
242e650626
Reduce number of pub(crate) attributes
2018-06-03 16:44:12 +02:00
Rafał Harabień
908ab61ee5
Update number of free clusters when allocating and freeing
2018-05-27 23:31:40 +02:00
Rafał Harabień
380add131d
Simplify code by using while and if let constructions
2018-05-27 18:37:33 +02:00
Rafał Harabień
11b2a3b956
Basic no_std support
2018-05-10 01:00:24 +02:00
Rafał Harabień
cecc35033a
Add write example.
2017-11-08 20:40:36 +01:00
Rafał Harabień
d5c37f2af5
Introduce FsOptions struct for providing options for library.
...
Old read_only flag in FileSystem::new was misleading.
2017-11-08 20:26:50 +01:00
Rafał Harabień
5c0ad0ce18
More code refactoring.
2017-11-08 19:59:03 +01:00
Rafał Harabień
681ee56cb3
Keep only BPB in FileSystem struct instead of entire BootRecord.
2017-11-08 19:41:05 +01:00
Rafał Harabień
4366b1836d
Add more comments in code.
2017-11-08 16:47:12 +01:00
Rafał Harabień
3f581835db
Code refactoring - no functional changes.
2017-11-08 16:03:08 +01:00
Rafał Harabień
3dc524759f
WIP dir_entry module?
2017-11-08 14:09:20 +01:00
Rafał Harabień
c4e6d59492
Add set_created and set_accessed public functions in File.
...
Small code refactoring included.
2017-11-08 01:23:00 +01:00
Rafał Harabień
b38ea78f3e
Add automatic update of timestamps (created, accessed, modified).
...
Works only if chrono feature is enabled (default).
2017-11-08 00:18:31 +01:00
Rafał Harabień
288da370b3
Ignore high 16 bits of cluster number in FAT12/16 dir entry.
2017-11-07 22:52:56 +01:00
Rafał Harabień
de9977e571
Don't panic in Drop.
...
The same behavior exists (without logging) in BufWriter from std crate.
It's not recommended to depend on flush during drop.
Instead user should flush explicitly and check for error.
2017-11-07 01:13:02 +01:00
Rafał Harabień
21bd2a0e8d
Zero new directory clusters after allocation.
2017-10-27 15:03:54 +02:00
Rafał
9ec23f1234
Add create_dir function. ( #5 )
2017-10-27 14:12:53 +02:00
Rafał
529d717e30
Add .editorconfig file and fix whitespaces in existing files. ( #4 )
2017-10-25 17:20:27 +02:00
Rafał Harabień
9d3780f859
Update README and add more doc comments.
2017-10-21 16:25:04 +02:00
Rafał Harabień
2a61b0d175
Small code improvements.
2017-10-21 15:51:19 +02:00
Rafał Harabień
ba5329edad
Support removing files and directories.
2017-10-20 16:18:17 +02:00
Rafał Harabień
b2c3eb1823
Don't recalculate cluster in seek if not needed.
2017-10-15 16:17:41 +02:00
Rafał Harabień
e2374c08cc
Fix seek for directory backed file.
2017-10-15 15:56:01 +02:00
Rafał Harabień
da76625759
Replace commented out logging by log crate usage.
2017-10-15 00:55:19 +02:00
Rafał Harabień
0c6e9aec5b
Fix multiple corner cases and simplify code.
2017-10-10 16:05:19 +02:00
Rafał Harabień
d8eba51b88
Alloc and free clusters for file data.
2017-10-09 21:14:28 +02:00
Rafał Harabień
f32f1c7279
Basic write support for files.
...
No cluster management yet.
Also BufStream is broken when writing.
2017-10-09 14:59:52 +02:00
Rafał Harabień
d32ae0eef9
Allow seeking beyond end of file as documented in Seek trait.
...
Also fix possible panic when seeking in file without clusters.
2017-10-07 16:07:33 +02:00
Rafał Harabień
a1a2ffc2af
Remove unneeded Fat prefix for most structures.
2017-10-07 14:56:50 +02:00
Rafał Harabień
beb463ba3f
Fix possible panics if cluster chain ends before EOF.
2017-10-07 02:37:29 +02:00
Rafał Harabień
3e08c80fb0
Dont assume cluster iterator always succeeds.
2017-10-07 02:19:19 +02:00
Rafał Harabień
a7ca474a2f
Add FatDir::iter() method returning dir entries iterator.
...
FatDir is no longer iterator. Change allows to iterate over directory and still be able to use it.
2017-10-06 16:07:11 +02:00
Rafał Harabień
bc835d59b5
Don't use boxed buffer in FAT cluster reading code.
...
I assume gived Read object is capable of basic buffering and caching.
2017-10-04 13:56:44 +02:00
Rafał Harabień
f9f192c35e
Add FAT table iterator.
2017-10-01 21:31:44 +02:00
Rafał Harabień
c8ccd7d86e
Don't use dynamic allocation for FAT table wrapper.
...
FAT table still uses Box but its hardly avoidable when reading entire FAT into memory.
2017-09-28 00:11:24 +02:00
Rafał Harabień
4feeb3eead
Use references instead of Rc for shared state.
2017-09-27 14:05:58 +02:00
Rafał Harabień
6b6759802a
Refactoring.
2017-09-24 03:08:00 +02:00
Rafał Harabień
daa51e3540
Implement Seek trait for File and rewind method in Dir.
2017-09-24 02:10:59 +02:00
Rafał Harabień
e44d7fc6c2
Fix reading FAT32 root dir.
2017-09-23 21:53:32 +02:00
Rafał Harabień
b535b460f9
Implement reading files beyond cluster (untested).
2017-09-23 20:16:32 +02:00
Rafał Harabień
88fd442dac
Refactor code to use shared state.
...
This way for example FatFile can implement Read trait.
2017-09-23 19:42:09 +02:00
Rafał Harabień
6b18dfd626
Don't read past end of file.
2017-09-23 00:22:31 +02:00