Replace Config.OpenFile with more general fs.FS-based approach - #296
Draft
benhoyt wants to merge 1 commit into
Draft
Replace Config.OpenFile with more general fs.FS-based approach#296benhoyt wants to merge 1 commit into
benhoyt wants to merge 1 commit into
Conversation
In #294 we added Config.OpenFile, but it returned a concrete *os.File, which makes it a lot less flexible than it needs to be. As this version hasn't been released yet, let's see if we can improve that. I'd like to fit in with io/fs.FS if possible, so that's what I've tried to do: if you provide a bare fs.FS for Config.FileSystem it allows read-only file access. If the type also implements WriteFS (adding Create and Append methods) it allow read and write access. NOTE: This code was written with the help of AI (GLM 5.2). I've reviewed it a little bit, but not thoroughly yet. This is a draft to see if we like the idea.
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.
In #294 we added Config.OpenFile, but it returned a concrete *os.File, which makes it a lot less flexible than it needs to be. As this version hasn't been released yet, let's see if we can improve that.
I'd like to fit in with io/fs.FS if possible, so that's what I've tried to do: if you provide a bare fs.FS for Config.FileSystem it allows read-only file access. If the type also implements WriteFS (adding Create and Append methods) it allow read and write access.
NOTE: This code was written with the help of AI (GLM 5.2). I've reviewed it a little bit, but not thoroughly yet. This is a draft to see if we like the idea.