Rafał Harabień
6f10042784
Support reading volume label from root directory
2018-08-05 00:14:49 +02:00
Rafał Harabień
5dea8b5f8a
Test dirty flags on all FAT variants
...
Flags field offset is different is it makes sense.
2018-06-29 15:38:27 +02:00
Rafał Harabień
dc1ad7d2f7
Mark volume dirty on first write and not-dirty on unmount
2018-06-29 15:35:37 +02:00
Rafał Harabień
1f2427d371
Implement the same traits for FsOptions as in current stable release
2018-06-28 19:16:04 +02:00
Rafał Harabień
759758c1f2
Improve OemCpConverter and TimeProvider docs
2018-06-28 19:01:07 +02:00
Rafał Harabień
881cf7709d
Deprecate set_created. set_accessed, set_modified methods on File
2018-06-28 18:58:29 +02:00
Rafał Harabień
ecef2627a7
Move time related code to 'time' module
2018-06-28 18:53:51 +02:00
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ń
98c0fa528c
Fix no_std build
2018-06-25 23:56:46 +02:00
Rafał Harabień
4528aedc6e
Add oem_cp_converter option allowing to provide custom short name decoder
...
Encoder is not yet used but will be in future.
This is implemented as static reference for now to avoid adding additional
type parameters to all main types. It should be enough for most of cases
where encoder/decoder does not have any state and can be implemented as
static variable.
2018-06-25 23:51:09 +02:00
Rafał Harabień
cd7e77e1b4
Rename directory entry flags and add some internal docs
2018-06-25 00:22:34 +02:00
Rafał Harabień
f9ca0f95ce
Fix decoding 0xE5 character in first byte of short name
2018-06-25 00:16:14 +02:00
Rafał Harabień
be96ba8122
Properly handle short names with spaces in the middle
2018-06-25 00:07:11 +02:00
Rafał Harabień
f5bf959aa7
Update TODO list
2018-06-24 17:15:53 +02:00
Rafał Harabień
a672add4e7
Remove unnecessary clone() calls
2018-06-23 14:49:16 +02:00
Rafał Harabień
099434c45d
Improve file creation time resolution to 1/100s
2018-06-23 14:17:58 +02:00
Rafał Harabień
fda4b5ca5b
Add docs for FatType variants
2018-06-20 19:56:16 +02:00
Rafał Harabień
fe90d952bf
Fix doc-tests
2018-06-20 19:52:18 +02:00
Rafał Harabień
00b5ee52d3
Update TODO list
2018-06-20 19:19:49 +02:00
Rafał Harabień
60d517a951
Add millis field to Time struct (BREAKING CHANGE)
2018-06-20 19:19:41 +02:00
Rafał Harabień
04887faaea
Improve docs
2018-06-20 19:08:50 +02:00
Rafał Harabień
8be8c68eab
Remove update_fs_info option
...
FSInfo sector should always be saved if it has changed.
2018-06-20 18:03:12 +02:00
Rafał Harabień
0077ee43e4
Improve README a bit more.
2018-06-20 17:58:45 +02:00
Rafał Harabień
eca77b6118
Change version to 0.3.0
2018-06-20 17:56:03 +02:00
Rafał Harabień
0dc643f7fe
Improve README file a bit
2018-06-20 17:55:46 +02:00
Rafał Harabień
c4a1bc70ec
Rename methods: bytes -> as_bytes
2018-06-20 17:38:04 +02:00
Rafał Harabień
69b7675940
Fix no_std build
2018-06-20 17:28:46 +02:00
Rafał Harabień
7a53215a57
No longer return &str for short names in no_std mode
...
Instead methods returning &[u8] were added.
It is API preparation for proper OEM codepage decoding.
Previous behavior would require to store duplicated short names
(one lossy and one real).
2018-06-20 17:17:01 +02:00
Rafał Harabień
d99ba96f72
Update TODO list
2018-06-20 17:10:53 +02:00
Rafał Harabień
f68996925f
Make sure short name generation never fails
2018-06-17 23:21:33 +02:00
Rafał Harabień
a6b66f9434
Make errors more consistent with std::fs
2018-06-17 23:11:53 +02:00
Rafał Harabień
8995a43bc4
Allow renaming to the same name
2018-06-17 22:26:07 +02:00
Rafał Harabień
8c1dae9f0c
Do not remove source file in Dir::rename if destination already exists
...
Previous code removed source file before returning an error.
It also caused a clusters leak. Now it returns error before doing any
modifications on the partition.
2018-06-17 22:25:22 +02:00
Rafał Harabień
4afd38a150
Fix possible overflow when calculating short name checksum
...
Affects debug build only. Overflow was not handled when calculating
checksum used for short name generation when avoiding a conflict.
LFN checksum was working properly but got refactored in this commit to
use num::Wrapping as well.
2018-06-17 21:58:39 +02:00
Rafał Harabień
674d1f8182
Fix failing in Dir::create_file/dir if existing destination entry has wrong type
2018-06-17 21:46:54 +02:00
Rafał Harabień
4f08acf4ab
Do not mount volume if fs_version field in BPB is not zero
2018-06-17 16:34:08 +02:00
Rafał Harabień
8a5491a919
Doc improvements
2018-06-17 16:27:59 +02:00
Rafał Harabień
11a39fdaae
Improve/fix API docs
2018-06-16 18:35:56 +02:00
Rafał Harabień
892c3974d3
Move BufStream to fscommon crate (BREAKING CHANGE)
...
BufStream is universal and can be used with any filesystem so its place is
in different crate. Also moved Partition struct from examples to
fscommon::StreamSlice struct (please note constructor arguments has changed).
2018-06-16 17:57:29 +02:00
Rafał Harabień
5f7fb04084
Add more allocation table tests
2018-06-14 00:59:06 +02:00
Rafał Harabień
5574c2af73
Simplify examples using new FileSystem struct definition
2018-06-13 23:26:13 +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ń
b1894a435e
Add FAT reading tests
2018-06-12 01:16:35 +02:00
Rafał Harabień
2304b13ec4
Take immutable self reference in Dir methods
...
Dir methods do not change Dir object itself. They usually clone inner
stream so no change really happens self struct. Underlying partition is
modified but it does not have to affect API. For example see
std::fs::File::set_len. This change greatly simplifies rename API usage.
2018-06-12 00:07:30 +02:00
Rafał Harabień
4f6ed94cb3
Limit file size to 4GB when writting
2018-06-09 19:32:15 +02:00
Rafał Harabień
18b9d8c285
Do not panic if unexpected file type is found during path traversal
...
For example if in the middle of the path a file is found.
Return error in such case instead of panicking.
2018-06-07 23:26:11 +02:00
Rafał Harabień
632a371b0d
Improve code structure
2018-06-07 23:07:52 +02:00
Rafał Harabień
ccb205c906
Ignore free_cluster_count in FSInfo sector if volume has dirty flag
2018-06-07 22:54:35 +02:00
Rafał Harabień
1656540eac
Simplify code by using Self in return type
2018-06-06 17:16:32 +02:00