headson/serialization/
types.rs1#[derive(Copy, Clone, Debug, Eq, PartialEq)]
2pub enum OutputTemplate {
3 Auto,
4 Json,
5 Pseudo,
6 Js,
7 Yaml,
8 Text,
9}
10
11#[derive(Copy, Clone, Debug, Eq, PartialEq)]
12pub enum Style {
13 Strict,
14 Default,
15 Detailed,
16}
17
18#[derive(Clone, Debug, Eq, PartialEq)]
19pub struct RenderConfig {
20 pub template: OutputTemplate,
21 pub indent_unit: String,
22 pub space: String,
23 pub newline: String,
26 pub prefer_tail_arrays: bool,
28 pub color_mode: ColorMode,
31 pub color_enabled: bool,
33 pub style: Style,
35}
36
37#[derive(Copy, Clone, Debug, Eq, PartialEq)]
38pub enum ColorMode {
39 On,
40 Off,
41 Auto,
42}
43
44impl ColorMode {
45 pub fn effective(self, stdout_is_terminal: bool) -> bool {
47 match self {
48 ColorMode::On => true,
49 ColorMode::Off => false,
50 ColorMode::Auto => stdout_is_terminal,
51 }
52 }
53}