feat: Implement fs.FS, checksums, encryption, and refactor #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.
This commit introduces several enhancements to the mdx library:
fs.FSInterface Implementation:mdict_fs.goto provide anfs.FScompatible wrapper for MDX/MDD files.Open,Stat,Read,Close,Seekfor individual entries (keywords/resources).ReadDiron the root to list all keywords/resources.Open()is currently a linear scan; optimization is recommended.Checksum Verification:
readMDictFileHeader)decodeKeyBlockInfo)decodeKeyEntries)_fetchAndDecodeRecordBlock)Encrypted File Support:
readKeyBlockMeta.decodeKeyBlockInfo.mdxDecryptfor decryption.Compression/Decompression Logic:
decodeKeyEntriesand record block handling.decodeKeyBlockInfoand record block handling.Refactoring and Best Practices:
errors.Newwithfmt.Errorffor more contextual error messages and consistently wrapped errors. Removed apanicinsplitKeyBlock.keywordEntryToIndexandkeywordEntryToIndex1into a single function.locateByKeywordEntryandlocateDefByKWIndexinto common helper functions (_fetchAndDecodeRecordBlock,_locateDefByKWIndexInternal).Testing:
fs.FSimplementation withmdict_fs_test.go.These changes aim to make the library more robust, feature-rich, and maintainable.