pub struct Parser { /* private fields */ }
Expand description
A changelog parser.
Implementations§
Source§impl Parser
impl Parser
Sourcepub fn version_format(&mut self, format: &str) -> Result<&mut Self, Error>
pub fn version_format(&mut self, format: &str) -> Result<&mut Self, Error>
Sets the version format.
## v0.1.0 -- 2020-01-01
^^^^^
Tip: To customize the text before the version number (e.g., “v” in “# v0.1.0”,
“Version “ in “# Version 0.1.0”, etc.), use the prefix_format
method
instead of this method.
§Default
The default version format is based on Semantic Versioning.
This is parsed by using the following regular expression:
^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$|^Unreleased$
Note: To get the ‘Unreleased’ section in the CLI, you need to explicitly specify ‘Unreleased’ as the version.
§Errors
Returns an error if any of the following:
- The specified format is not a valid regular expression or supported by regex crate.
- The specified format is empty or contains only whitespace.
Sourcepub fn prefix_format(&mut self, format: &str) -> Result<&mut Self, Error>
pub fn prefix_format(&mut self, format: &str) -> Result<&mut Self, Error>
Sets the prefix format.
“Prefix” means the range from the first non-whitespace character after heading to the character before the version (including whitespace characters). For example:
## Version 0.1.0 -- 2020-01-01
^^^^^^^^
## v0.1.0 -- 2020-01-01
^
§Default
By default only “v”, “Version “, “Release “, and “” (no prefix) are allowed as prefixes.
This is parsed by using the following regular expression:
^(v|Version |Release )?
§Errors
Returns an error if any of the following:
- The specified format is not a valid regular expression or supported by regex crate.
Sourcepub fn parse<'a>(&self, text: &'a str) -> Result<Changelog<'a>, Error>
pub fn parse<'a>(&self, text: &'a str) -> Result<Changelog<'a>, Error>
Parses release notes from the given text
.
See the crate-level documentation for changelog and version format supported by default.
§Errors
Returns an error if any of the following:
- There are multiple release notes for one version.
- No release note was found. This usually means that the changelog isn’t written in the supported format, or that the specified format is wrong if you specify your own format.
If you want to handle these cases manually without making errors,
consider using parse_iter
.
Sourcepub fn parse_iter<'a, 'r>(&'r self, text: &'a str) -> ParseIter<'a, 'r> ⓘ
pub fn parse_iter<'a, 'r>(&'r self, text: &'a str) -> ParseIter<'a, 'r> ⓘ
Returns an iterator over all release notes in the given text
.
Unlike parse
method, the returned iterator doesn’t error on
duplicate release notes or empty changelog.
See the crate-level documentation for changelog and version format supported by default.