Major structural code refactor - #52
Draft
Oakchris1955 wants to merge 36 commits into
Draft
Conversation
Any filesystem-related properties can now be accessed only thought this struct's methods, preventing accidental overwriting of relevant fields Removed internal `OffsetConversions` trait, its methods are now integrated to the `FSProperties` struct
…ports as much as possible
… of stuff, document most FileSystem methods
… associated functions
…a `Box`ed slice instead of a `Vec` internally
…rectory label was too big Also updated relevant documentation comments to describe method behaviour if label is too big to fit
I recently stumbled upon rustls' contributing guidelines and one of them was that code on the top of a module should depend on code below it so that everything is more readable and I decided to implement that here
…`unreachable!` and `.then` methods where possible
…nt comment Co-Authored-By: Marios Mitsios <xrteach@gmail.com>
…r each time where this occured Also, split a (Sfn, Codepage) tuple into sfn and codepage fields in Properties struct
…ossible This commit also includes a small rider change where DirEntryChain's len field type has been changed from u16 to EntryCount (EntryCount is a type alias to u16, the change was made to make it more clear where that u16 came from)
Oakchris1955
force-pushed
the
refactor_methods
branch
from
August 14, 2026 11:32
9bcbc94 to
6c0b8c7
Compare
Owner
Author
|
Removed an |
Oakchris1955
force-pushed
the
refactor_methods
branch
from
August 16, 2026 12:11
6c0b8c7 to
e69fb57
Compare
…add tests Regarding SFN generation logic, `'` wasn't permitted at all in a SFN while the FAT specification says it does, and mixed-case names that could be directly mapped to their uppercase counterparts were appended with a `~1`. While that behaviour isn't explicitly incorrect, Windows doesn't follow it, so we have adjusted our code to more closely reflect that behaviour.
Oakchris1955
force-pushed
the
refactor_methods
branch
from
August 16, 2026 12:15
e69fb57 to
81e74c2
Compare
…-null terminated byte-sequence handling code.
Owner
Author
|
Had to force push multiple times due to some Git shenanigans when rebasing an older commit. |
…(apart from embedded-io) embedded-io seems to have some breakage issue, so I will deal with it in a later commit
…rror` for Error structs/enums Also brought back displaydoc dependency & prefixed embedded-io Error-related imports with "IO"
Oakchris1955
force-pushed
the
refactor_methods
branch
from
August 23, 2026 12:27
b7aeaf4 to
2fbe786
Compare
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With this PR I will attempt to refactor the majority of the code. Changes will be mostly structural, that is, things will mainly get renamed and moved around, but the logic should stay the same. This is being done because the code is mostly spaghetti-like. For example, the
fs.rsfile of thefatmodule currently pulls over 50 items from other module and is 2.8k lines long.