doku/printers/toml/formatting/
values_style.rs

1use crate::*;
2
3/// Determines how values should get displayed.
4#[derive(Clone, Debug, Serialize, Deserialize)]
5#[serde(deny_unknown_fields)]
6pub enum ValuesStyle {
7    /// Displays values _outside_ of objects, as comments:
8    ///
9    /// ```
10    /// use doku::Document;
11    /// use serde::Serialize;
12    ///
13    /// #[derive(Serialize, Document)]
14    /// struct Person {
15    ///     /// First name
16    ///     name: String,
17    /// }
18    ///
19    /// let fmt = doku::toml::Formatting {
20    ///     values_style: doku::toml::ValuesStyle::Comment(
21    ///         "Default value: ".to_string(),
22    ///     ),
23    ///     ..Default::default()
24    /// };
25    ///
26    /// let val = Person {
27    ///     name: "Janet".to_string(),
28    /// };
29    ///
30    /// let doc = doku::to_toml_fmt_val(&fmt, &val);
31    ///
32    /// doku::assert_doc!(r#"
33    ///     ## First name
34    ///     ## Default value: "Janet"
35    ///     name = "string"
36    /// "#, doc);
37    /// ```
38    Comment(String),
39
40    /// Displays values _inside_ of objects, as fields:
41    ///
42    /// ```
43    /// use doku::Document;
44    /// use serde::Serialize;
45    ///
46    /// #[derive(Serialize, Document)]
47    /// struct Person {
48    ///     /// First name
49    ///     name: String,
50    /// }
51    ///
52    /// let fmt = doku::toml::Formatting {
53    ///     values_style: doku::toml::ValuesStyle::Field,
54    ///     ..Default::default()
55    /// };
56    ///
57    /// let val = Person {
58    ///     name: "Janet".to_string(),
59    /// };
60    ///
61    /// let doc = doku::to_toml_fmt_val(&fmt, &val);
62    ///
63    /// doku::assert_doc!(r#"
64    ///     ## First name
65    ///     name = "Janet"
66    /// "#, doc);
67    /// ```
68    Field,
69}
70
71impl Default for ValuesStyle {
72    fn default() -> Self {
73        Self::Field
74    }
75}