mirror of
https://github.com/itsjunetime/tdf.git
synced 2026-06-02 08:01:47 -04:00
Update to edition 2024
This commit is contained in:
+2
-1
@@ -2,7 +2,7 @@
|
|||||||
name = "tdf-viewer"
|
name = "tdf-viewer"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["June Welker <junewelker@gmail.com>"]
|
authors = ["June Welker <junewelker@gmail.com>"]
|
||||||
edition = "2021"
|
edition = "2024"
|
||||||
description = "A terminal viewer for PDFs"
|
description = "A terminal viewer for PDFs"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
homepage = "https://github.com/itsjunetime/tdf"
|
homepage = "https://github.com/itsjunetime/tdf"
|
||||||
@@ -11,6 +11,7 @@ license = "AGPL-3.0-only"
|
|||||||
keywords = ["pdf", "tui", "cli", "terminal"]
|
keywords = ["pdf", "tui", "cli", "terminal"]
|
||||||
categories = ["command-line-utilities", "text-processing", "visualization"]
|
categories = ["command-line-utilities", "text-processing", "visualization"]
|
||||||
default-run = "tdf"
|
default-run = "tdf"
|
||||||
|
rust-version = "1.85"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "tdf"
|
name = "tdf"
|
||||||
|
|||||||
@@ -6,15 +6,15 @@ use std::{
|
|||||||
time::{SystemTime, UNIX_EPOCH}
|
time::{SystemTime, UNIX_EPOCH}
|
||||||
};
|
};
|
||||||
|
|
||||||
use criterion::{criterion_group, criterion_main, profiler::Profiler, BenchmarkId, Criterion};
|
use criterion::{BenchmarkId, Criterion, criterion_group, criterion_main, profiler::Profiler};
|
||||||
use futures_util::StreamExt;
|
use futures_util::StreamExt;
|
||||||
use tdf::{
|
use tdf::{
|
||||||
converter::{ConvertedPage, ConverterMsg},
|
converter::{ConvertedPage, ConverterMsg},
|
||||||
renderer::{fill_default, PageInfo, RenderInfo}
|
renderer::{PageInfo, RenderInfo, fill_default}
|
||||||
};
|
};
|
||||||
use utils::{
|
use utils::{
|
||||||
handle_converter_msg, handle_renderer_msg, render_doc, start_all_rendering,
|
RenderState, handle_converter_msg, handle_renderer_msg, render_doc, start_all_rendering,
|
||||||
start_converting_loop, start_rendering_loop, RenderState
|
start_converting_loop, start_rendering_loop
|
||||||
};
|
};
|
||||||
|
|
||||||
const FILES: [&str; 3] = [
|
const FILES: [&str; 3] = [
|
||||||
|
|||||||
+3
-3
@@ -1,13 +1,13 @@
|
|||||||
use std::{hint::black_box, path::Path};
|
use std::{hint::black_box, path::Path};
|
||||||
|
|
||||||
use crossterm::terminal::WindowSize;
|
use crossterm::terminal::WindowSize;
|
||||||
use flume::{r#async::RecvStream, unbounded, Sender};
|
use flume::{Sender, r#async::RecvStream, unbounded};
|
||||||
use futures_util::stream::StreamExt as _;
|
use futures_util::stream::StreamExt as _;
|
||||||
use ratatui::layout::Rect;
|
use ratatui::layout::Rect;
|
||||||
use ratatui_image::picker::{Picker, ProtocolType};
|
use ratatui_image::picker::{Picker, ProtocolType};
|
||||||
use tdf::{
|
use tdf::{
|
||||||
converter::{run_conversion_loop, ConvertedPage, ConverterMsg},
|
converter::{ConvertedPage, ConverterMsg, run_conversion_loop},
|
||||||
renderer::{fill_default, start_rendering, RenderError, RenderInfo, RenderNotif}
|
renderer::{RenderError, RenderInfo, RenderNotif, fill_default, start_rendering}
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn handle_renderer_msg(
|
pub fn handle_renderer_msg(
|
||||||
|
|||||||
+2
-2
@@ -2,10 +2,10 @@ use flume::{Receiver, SendError, Sender, TryRecvError};
|
|||||||
use futures_util::stream::StreamExt;
|
use futures_util::stream::StreamExt;
|
||||||
use image::DynamicImage;
|
use image::DynamicImage;
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use ratatui_image::{picker::Picker, protocol::Protocol, Resize};
|
use ratatui_image::{Resize, picker::Picker, protocol::Protocol};
|
||||||
use rayon::iter::ParallelIterator;
|
use rayon::iter::ParallelIterator;
|
||||||
|
|
||||||
use crate::renderer::{fill_default, PageInfo, RenderError};
|
use crate::renderer::{PageInfo, RenderError, fill_default};
|
||||||
|
|
||||||
pub struct ConvertedPage {
|
pub struct ConvertedPage {
|
||||||
pub page: Protocol,
|
pub page: Protocol,
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,6 @@
|
|||||||
use std::{
|
use std::{
|
||||||
ffi::OsString,
|
ffi::OsString,
|
||||||
io::{stdout, Read, Write},
|
io::{Read, Write, stdout},
|
||||||
num::NonZeroUsize,
|
num::NonZeroUsize,
|
||||||
path::PathBuf
|
path::PathBuf
|
||||||
};
|
};
|
||||||
@@ -8,16 +8,16 @@ use std::{
|
|||||||
use crossterm::{
|
use crossterm::{
|
||||||
execute,
|
execute,
|
||||||
terminal::{
|
terminal::{
|
||||||
disable_raw_mode, enable_raw_mode, window_size, EndSynchronizedUpdate,
|
EndSynchronizedUpdate, EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode,
|
||||||
EnterAlternateScreen, LeaveAlternateScreen
|
enable_raw_mode, window_size
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
use futures_util::{stream::StreamExt, FutureExt};
|
use futures_util::{FutureExt, stream::StreamExt};
|
||||||
use notify::{Event, EventKind, RecursiveMode, Watcher};
|
use notify::{Event, EventKind, RecursiveMode, Watcher};
|
||||||
use ratatui::{backend::CrosstermBackend, Terminal};
|
use ratatui::{Terminal, backend::CrosstermBackend};
|
||||||
use ratatui_image::picker::Picker;
|
use ratatui_image::picker::Picker;
|
||||||
use tdf::{
|
use tdf::{
|
||||||
converter::{run_conversion_loop, ConvertedPage, ConverterMsg},
|
converter::{ConvertedPage, ConverterMsg, run_conversion_loop},
|
||||||
renderer::{self, RenderError, RenderInfo, RenderNotif},
|
renderer::{self, RenderError, RenderInfo, RenderNotif},
|
||||||
tui::{BottomMessage, InputAction, MessageSetting, Tui}
|
tui::{BottomMessage, InputAction, MessageSetting, Tui}
|
||||||
};
|
};
|
||||||
|
|||||||
+9
-7
@@ -4,22 +4,22 @@ use crossterm::{
|
|||||||
event::{Event, KeyCode, KeyModifiers, MouseEventKind},
|
event::{Event, KeyCode, KeyModifiers, MouseEventKind},
|
||||||
execute,
|
execute,
|
||||||
terminal::{
|
terminal::{
|
||||||
disable_raw_mode, enable_raw_mode, BeginSynchronizedUpdate, EnterAlternateScreen,
|
BeginSynchronizedUpdate, EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode,
|
||||||
LeaveAlternateScreen
|
enable_raw_mode
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
use nix::{
|
use nix::{
|
||||||
sys::signal::{kill, Signal::SIGSTOP},
|
sys::signal::{Signal::SIGSTOP, kill},
|
||||||
unistd::Pid
|
unistd::Pid
|
||||||
};
|
};
|
||||||
use ratatui::{
|
use ratatui::{
|
||||||
|
Frame,
|
||||||
layout::{Constraint, Flex, Layout, Rect},
|
layout::{Constraint, Flex, Layout, Rect},
|
||||||
style::{Color, Style},
|
style::{Color, Style},
|
||||||
text::Span,
|
text::Span,
|
||||||
widgets::{Block, Borders, Padding},
|
widgets::{Block, Borders, Padding}
|
||||||
Frame
|
|
||||||
};
|
};
|
||||||
use ratatui_image::{protocol::Protocol, Image};
|
use ratatui_image::{Image, protocol::Protocol};
|
||||||
|
|
||||||
use crate::{renderer::RenderError, skip::Skip};
|
use crate::{renderer::RenderError, skip::Skip};
|
||||||
|
|
||||||
@@ -516,7 +516,9 @@ impl Tui {
|
|||||||
Some(InputAction::JumpingToPage(zero_page))
|
Some(InputAction::JumpingToPage(zero_page))
|
||||||
} else {
|
} else {
|
||||||
self.set_msg(MessageSetting::Some(BottomMessage::Error(
|
self.set_msg(MessageSetting::Some(BottomMessage::Error(
|
||||||
format!("Cannot jump to page {page}; there are only {rendered_len} pages in the document")
|
format!(
|
||||||
|
"Cannot jump to page {page}; there are only {rendered_len} pages in the document"
|
||||||
|
)
|
||||||
)));
|
)));
|
||||||
Some(InputAction::Redraw)
|
Some(InputAction::Redraw)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user