linked lists
This commit is contained in:
parent
8eab2502c7
commit
430c62c120
12 changed files with 783 additions and 544 deletions
|
|
@ -1,31 +1,31 @@
|
|||
use std::sync::Arc;
|
||||
use dumpster::sync::Gc;
|
||||
|
||||
use crate::tui::{
|
||||
model::LogEntry,
|
||||
processing::{FilterList, LogStream},
|
||||
};
|
||||
use crate::tui::{log_viewer::filters::Filters, model::LogEntry, processing::Cursor};
|
||||
|
||||
pub struct LogView {
|
||||
pub iter: Box<dyn LogStream>,
|
||||
pub cursor: Cursor,
|
||||
pub selection_offset: usize,
|
||||
}
|
||||
|
||||
impl LogView {
|
||||
pub fn selected(&self, fl: &FilterList) -> Option<(Arc<LogEntry>, usize)> {
|
||||
let mut temp_iter = self.iter.clone();
|
||||
for _ in 0..self.selection_offset {
|
||||
let _ = temp_iter.next(fl)?;
|
||||
pub fn selected(&self, filters: &Filters) -> Option<(Gc<LogEntry>, usize)> {
|
||||
let mut temp_iter = self.cursor.clone();
|
||||
for _ in 0..(self.selection_offset + 1) {
|
||||
if !temp_iter.next(filters) {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
temp_iter.next(fl)
|
||||
// TODO: inline depth
|
||||
Some((temp_iter.curr(), 0))
|
||||
}
|
||||
}
|
||||
|
||||
impl Clone for LogView {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
iter: self.iter.clone(),
|
||||
selection_offset: self.selection_offset.clone(),
|
||||
cursor: self.cursor.clone(),
|
||||
selection_offset: self.selection_offset,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue