Description
Hi! I'm a developer that's been tasked to implement GitOxide into a WASM stack in an effort to clone a project as fast as possible in the browser.
As part of that work, I'm looking to introduce a lot of new functionality into the project to get clone
working. As an initial task, I'm hoping to get the git-config
package able to read and write config files. I've got a (very) WIP port of config parsing logic from isomorphic-git
over on my fork.
I won't bother asking for a code review right now, I'm brand new to Rust and have a colleague taking a look at the code right now to give me some pointers on how I can improve my work
That said, I am unsure of what direction we want to go in with regards to data organization. The current output is a pretty unmanageable tangled vector of Sections and Entries alike in a single struct
I've noticed that the current git-config
file has both Section
and Entry
types that look to contain all of the relevant properties, so I'll be refactoring my current code to use that data structure.
Outside of that, I was hoping you could give me some kind of direction when it comes to the different mod
s in the git-config/lib.rs
file:
https://github.com/Byron/gitoxide/blob/main/git-config/src/lib.rs#L57-L72
https://github.com/Byron/gitoxide/blob/main/git-config/src/lib.rs#L131-L217
I'm not entirely sure what borrowed
or spawned
is referring to (which I admit as a point-of-noobiness), and I'm not sure I track what Span
is doing here.
I also would love some insight as to what a Token
is referring to here:
https://github.com/Byron/gitoxide/blob/main/git-config/src/file.rs#L4-L23
As I'm not sure an instance that would have a Section
and only a single Entry
Looking forward to learning more and being able to meaningfully contribute upstream!