pub struct ConflictFile { /* private fields */ }Expand description
A file with conflict markers, parsed.
use rich_ext::diff::ConflictFile;
let file = ConflictFile::parse("a\n<<<<<<< HEAD\nb\n=======\nc\n>>>>>>> topic\nd\n").unwrap();
let conflict = &file.conflicts()[0];
assert_eq!(conflict.ours.label.as_deref(), Some("HEAD"));
assert_eq!(file.text(&conflict.ours), "b");
assert_eq!(file.text(&conflict.theirs), "c");
assert_eq!((conflict.start_line(), conflict.end_line), (2, 6));Implementations§
Source§impl ConflictFile
impl ConflictFile
Sourcepub fn parse(text: &str) -> Result<ConflictFile, ConflictError>
pub fn parse(text: &str) -> Result<ConflictFile, ConflictError>
Parse text. Lines may end in \n or \r\n; a leading byte-order
mark is dropped. Fails on input over MAX_CONFLICT_SOURCE bytes,
more than MAX_CONFLICTS conflicts, markers out of order, and a
conflict left open at the end, naming the line.
Sourcepub fn has_conflicts(&self) -> bool
pub fn has_conflicts(&self) -> bool
Whether the file has any conflict.
Sourcepub fn text(&self, side: &ConflictSide) -> String
pub fn text(&self, side: &ConflictSide) -> String
A side’s lines joined with \n (no trailing newline).
Trait Implementations§
Source§impl Clone for ConflictFile
impl Clone for ConflictFile
Source§impl Debug for ConflictFile
impl Debug for ConflictFile
impl Eq for ConflictFile
Source§impl PartialEq for ConflictFile
impl PartialEq for ConflictFile
impl StructuralPartialEq for ConflictFile
Auto Trait Implementations§
impl Freeze for ConflictFile
impl RefUnwindSafe for ConflictFile
impl Send for ConflictFile
impl Sync for ConflictFile
impl Unpin for ConflictFile
impl UnsafeUnpin for ConflictFile
impl UnwindSafe for ConflictFile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.