ak_vis/viewer/headless/
config.rs1use std::path::PathBuf;
2
3const DEFAULT_PREROLL_FRAMES: u32 = 4;
4const DEFAULT_STABLE_FRAMES: u32 = 2;
5
6#[derive(Clone, Debug, PartialEq, Eq)]
7pub struct HeadlessRenderConfig {
8 pub path: PathBuf,
9 pub width: u32,
10 pub height: u32,
11 pub preroll_frames: u32,
12 pub stable_frames: u32,
13}
14
15impl HeadlessRenderConfig {
16 pub fn new(path: impl Into<PathBuf>, width: u32, height: u32) -> Self {
17 Self {
18 path: path.into(),
19 width,
20 height,
21 preroll_frames: DEFAULT_PREROLL_FRAMES,
22 stable_frames: DEFAULT_STABLE_FRAMES,
23 }
24 }
25}
26
27#[derive(Debug, Clone, PartialEq, Eq)]
28pub struct HeadlessRenderError {
29 message: String,
30}
31
32impl HeadlessRenderError {
33 pub(super) fn new(message: impl Into<String>) -> Self {
34 Self {
35 message: message.into(),
36 }
37 }
38}
39
40impl std::fmt::Display for HeadlessRenderError {
41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
42 f.write_str(&self.message)
43 }
44}
45
46impl std::error::Error for HeadlessRenderError {}
47
48impl From<std::io::Error> for HeadlessRenderError {
49 fn from(value: std::io::Error) -> Self {
50 Self::new(value.to_string())
51 }
52}