pub struct FileWhitelistData {
pub file_hash: String,
pub line_ranges_read: Vec<(usize, usize)>,
pub total_lines: usize,
}Fields§
§file_hash: String§line_ranges_read: Vec<(usize, usize)>§total_lines: usizeImplementations§
Source§impl FileWhitelistData
impl FileWhitelistData
pub fn new( file_hash: String, line_ranges_read: Vec<(usize, usize)>, total_lines: usize, ) -> Self
pub fn is_read_enough(&self) -> bool
pub fn get_percentage_read(&self) -> f64
pub fn get_unread_ranges(&self) -> Vec<(usize, usize)>
Sourcepub fn add_range(&mut self, start: usize, end: usize)
pub fn add_range(&mut self, start: usize, end: usize)
Record [start, end] as read, merging it into the existing intervals so
line_ranges_read stays a bounded set of disjoint ranges. Without the
merge, re-reading a file appended duplicate ranges forever (unbounded
memory per session).
Sourcepub fn merge_ranges(&mut self, new: impl IntoIterator<Item = (usize, usize)>)
pub fn merge_ranges(&mut self, new: impl IntoIterator<Item = (usize, usize)>)
Merge new ranges into line_ranges_read, keeping it sorted and disjoint
(adjacent inclusive ranges like (1,3) and (4,5) collapse to (1,5)).
pub fn needs_more_reading(&self) -> bool
Sourcepub fn covers_range(&self, start: usize, end: usize) -> bool
pub fn covers_range(&self, start: usize, end: usize) -> bool
Whether every line in one inclusive range was visible to the model for this exact file hash.
Trait Implementations§
Source§impl Clone for FileWhitelistData
impl Clone for FileWhitelistData
Source§impl Debug for FileWhitelistData
impl Debug for FileWhitelistData
Source§impl<'de> Deserialize<'de> for FileWhitelistData
impl<'de> Deserialize<'de> for FileWhitelistData
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 From<&FileWhitelistData> for FileWhitelistDataSnapshot
impl From<&FileWhitelistData> for FileWhitelistDataSnapshot
Source§fn from(d: &FileWhitelistData) -> Self
fn from(d: &FileWhitelistData) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for FileWhitelistData
impl RefUnwindSafe for FileWhitelistData
impl Send for FileWhitelistData
impl Sync for FileWhitelistData
impl Unpin for FileWhitelistData
impl UnsafeUnpin for FileWhitelistData
impl UnwindSafe for FileWhitelistData
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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