Commit Graph

52 Commits

Author SHA1 Message Date
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