pub struct FileObj {
pub name: PathBuf,
pub added_lines: Vec<u32>,
pub added_ranges: Vec<RangeInclusive<u32>>,
pub diff_chunks: Vec<RangeInclusive<u32>>,
pub format_advice: Option<FormatAdvice>,
pub tidy_advice: Option<TidyAdvice>,
/* private fields */
}Expand description
A structure to represent a file’s path and line changes.
Fields§
§name: PathBufThe path to the file.
added_lines: Vec<u32>The list of lines with additions.
added_ranges: Vec<RangeInclusive<u32>>The list of ranges that span only lines with additions.
diff_chunks: Vec<RangeInclusive<u32>>The list of ranges that span the lines present in diff chunks.
format_advice: Option<FormatAdvice>The collection of clang-format advice for this file.
tidy_advice: Option<TidyAdvice>The collection of clang-format advice for this file.
Implementations§
Source§impl FileObj
impl FileObj
Sourcepub fn new(name: PathBuf) -> Self
pub fn new(name: PathBuf) -> Self
Instantiate a rudimentary object with only file name information.
To instantiate an object with line information, use FileObj::from.
Sourcepub fn from(
name: PathBuf,
added_lines: Vec<u32>,
diff_chunks: Vec<RangeInclusive<u32>>,
) -> Self
pub fn from( name: PathBuf, added_lines: Vec<u32>, diff_chunks: Vec<RangeInclusive<u32>>, ) -> Self
Instantiate an object with file name and changed lines information.
Sourcepub fn get_ranges(
&self,
lines_changed_only: &LinesChangedOnly,
) -> Vec<RangeInclusive<u32>>
pub fn get_ranges( &self, lines_changed_only: &LinesChangedOnly, ) -> Vec<RangeInclusive<u32>>
Get the list of line ranges to consider based on the given
LinesChangedOnly configuration.
Sourcepub fn is_hunk_in_diff(&self, hunk: &Hunk) -> Option<(u32, u32)>
pub fn is_hunk_in_diff(&self, hunk: &Hunk) -> Option<(u32, u32)>
Is the range from start_line to end_line contained in a single item of
FileObj::diff_chunks?
Sourcepub fn maybe_append_patch(&self, repo_root: &Path) -> Result<(), FileObjError>
pub fn maybe_append_patch(&self, repo_root: &Path) -> Result<(), FileObjError>
If the file has a cached fixes, then append them to a unified patched file.
This is the alternative to FileObj::make_suggestions_from_patch() when
a PR review is not being posted. Both function have to create a patch by
reading the original file and patched file (in cache), but
FileObj::make_suggestions_from_patch() does more with the diff than this function.
Sourcepub fn make_suggestions_from_patch(
&self,
review_comments: &mut ReviewComments,
summary_only: bool,
repo_root: &Path,
) -> Result<(), FileObjError>
pub fn make_suggestions_from_patch( &self, review_comments: &mut ReviewComments, summary_only: bool, repo_root: &Path, ) -> Result<(), FileObjError>
Create a list of Suggestion from a
generated diff and store them in the given
ReviewComments.
The suggestions will also include diagnostics from clang-tidy that did not have a fix applied in the patch.