The result of parsing a CODEOWNERS file. Contains a Vec of parsed rules
and a Vec of errors encountered during parsing. If the Vec of errors is
non-empty, the Vec of rules may be incomplete. If the Vec of errors is
empty, the file was parsed successfully.
A parsed CODEOWNERS rule. Contains a pattern and a list of owners, along
with any comments that were found before or after the rule. All fields are
wrapped in Spanned to preserve the original source location.
Parse a CODEOWNERS file from a file path, reading the contents of the file
and returning a ParseResult containing the parsed rules and any errors
encountered.