feat(rar): add support for multi-volume rar archives #33
+83
−1
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.
The RAR archive format supports multi-volume archives. These are archives that are split across multiple files and extracting files from them requires reading through each of the 'volumes' until all the data is retrieved.
For streaming, this doesn't make sense (as you could just stream all the data in a single stream - no reason to split it) but for reading from disk, the way this is now handled is by setting an additional field on the Rar struct.
The Name field specifies the filename of the first volume in the multi-volume archive. This is important as this name is used to derive the names of subsequent volumes in the archive.
Additionally, you can also set an FS field on the Rar struct. If set, this forces the extractor to load volumes from the provided fs.FS rather than directly via OS.
Addresses #20