muffy/render/
options.rs

1/// A rendering format.
2#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, clap::ValueEnum)]
3pub enum RenderFormat {
4    /// Human-readable text.
5    #[default]
6    Text,
7    /// JSON.
8    Json,
9}
10
11/// Rendering options.
12#[derive(Debug, Default, Eq, PartialEq)]
13pub struct RenderOptions {
14    format: RenderFormat,
15    verbose: bool,
16}
17
18impl RenderOptions {
19    /// Creates rendering options.
20    pub fn new() -> Self {
21        Self::default()
22    }
23
24    /// Returns the rendering format.
25    pub const fn format(&self) -> RenderFormat {
26        self.format
27    }
28
29    /// Returns whether verbose output is enabled.
30    pub const fn verbose(&self) -> bool {
31        self.verbose
32    }
33
34    /// Sets a rendering format.
35    pub const fn set_format(mut self, format: RenderFormat) -> Self {
36        self.format = format;
37        self
38    }
39
40    /// Sets whether verbose output is enabled.
41    pub const fn set_verbose(mut self, verbose: bool) -> Self {
42        self.verbose = verbose;
43        self
44    }
45}