pub struct LinesDep {
pub path: XvcPath,
pub begin: usize,
pub end: usize,
pub xvc_metadata: Option<XvcMetadata>,
pub digest: Option<ContentDigest>,
}
Expand description
Dependency that tracks the change of a range of lines in a file. Unlike [LineItemsDep], this dependency doesn’t track the change of individual lines, but their collected digest to save space.
Fields§
§path: XvcPath
Path of the file in the workspace
begin: usize
The beginning of range
end: usize
The end of range
xvc_metadata: Option<XvcMetadata>
Metadata of the file
digest: Option<ContentDigest>
Digest of the lines
Implementations§
Source§impl LinesDep
impl LinesDep
Sourcepub fn new(path: XvcPath, begin: usize, end: usize) -> Self
pub fn new(path: XvcPath, begin: usize, end: usize) -> Self
Create a new dependency to track the change of a range of lines in a file. Initially the metadata and digest of lines is blank.
Sourcepub fn update_digest(self, xvc_root: &XvcRoot, algorithm: HashAlgorithm) -> Self
pub fn update_digest(self, xvc_root: &XvcRoot, algorithm: HashAlgorithm) -> Self
Update the digest of the lines in the file.
Sourcepub fn update_metadata(self, xvc_metadata: Option<XvcMetadata>) -> Self
pub fn update_metadata(self, xvc_metadata: Option<XvcMetadata>) -> Self
Update the file metadata with the supplied metadata
Trait Implementations§
Source§impl<'de> Deserialize<'de> for LinesDep
impl<'de> Deserialize<'de> for LinesDep
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Diffable for LinesDep
impl Diffable for LinesDep
Source§fn diff_superficial(
record: &Self::Item,
actual: &Self::Item,
) -> Diff<Self::Item>
fn diff_superficial( record: &Self::Item, actual: &Self::Item, ) -> Diff<Self::Item>
⚠️ Call actual.update_metadata before calling this. ⚠️
Source§fn diff_thorough(record: &Self::Item, actual: &Self::Item) -> Diff<Self::Item>
fn diff_thorough(record: &Self::Item, actual: &Self::Item) -> Diff<Self::Item>
⚠️ Call actual.update_lines before calling this. ⚠️
Source§impl From<LinesDep> for XvcDependency
impl From<LinesDep> for XvcDependency
Source§impl Ord for LinesDep
impl Ord for LinesDep
Source§impl PartialOrd for LinesDep
impl PartialOrd for LinesDep
Source§impl Storable for LinesDep
impl Storable for LinesDep
Source§fn type_description() -> String
fn type_description() -> String
A string representation for the type. Read more
impl Eq for LinesDep
impl StructuralPartialEq for LinesDep
Auto Trait Implementations§
impl Freeze for LinesDep
impl RefUnwindSafe for LinesDep
impl Send for LinesDep
impl Sync for LinesDep
impl Unpin for LinesDep
impl UnwindSafe for LinesDep
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> Comparable<K> for Q
impl<Q, K> Comparable<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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more