Thanks a lot for contributing to this project!
The following is a set of guidelines for contributing to nom.
Since the project is young: consider those best practices prone to change. Please suggest improvements!
The project uses the MIT license. By contributing to this project you agree to license your changes under this license.
There is plenty of features missing and possibly bugs might be already there. Feel free to add new issues and to wrangle over those already open and help fixing them.
Implementing new codecs, container formats or protocols is always welcome!
It is strongly suggested to provide test along changes so the coverage stays around the 85%, helping to get to full coverage is pretty welcome.
Help in making sure the code does not have performance regression, by improving the benchmark suite or just by running it weekly, is welcome as well.
To preview changes to the documentation: use cargo doc
with cargo external-doc
Try to write at least 3 short paragraphs describing what were you trying to achieve, what is not working and the step by step actions that lead to the unwanted outcome.
If possible provide:
- a code snippet or a link to a gist showcasing the problem, if is a library usage issue.
- a backtrace, if it is a crash.
- a sample file, if it is a decoding or encoding issue.
The normal rust coding style is checked by [rustfmt][cs1]. Readable code is the first step on having good and safe libraries.
To avoid slight differences appearing in nightly versions, please
use the following command to run rustfmt: cargo +stable fmt
[cs1]: https://github.com/rust-lang-nursery/rustfmt