linked lists

This commit is contained in:
Jana Dönszelmann 2026-03-20 10:44:20 +01:00
parent 8eab2502c7
commit 430c62c120
No known key found for this signature in database
12 changed files with 783 additions and 544 deletions

View file

@ -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,
}
}
}