tree_table/args/
args_data_format.rs1use alloc::string::String;
2
3use crate::DataFormat;
4use crate::SpanKey;
5use crate::statics::default_emit_event_for_api;
6use crate::statics::default_expand_for_api;
7use crate::statics::default_save_selection_for_api;
8use crate::statics::default_undo_for_api;
9#[cfg(feature = "serde")]
10use crate::statics::get_true;
11
12#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
13#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
14#[cfg_attr(feature = "serde", serde(untagged))]
15#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
16#[derive(Debug, Clone, PartialEq)]
17pub enum FormatSpec {
18 Simple(String), Rich(DataFormat),
22}
23
24#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
25#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
26#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
27#[derive(Debug, Clone, PartialEq)]
28pub struct DataFormatArgs {
29 pub key: SpanKey,
30 pub fmt: Option<FormatSpec>,
31 #[cfg_attr(feature = "serde", serde(default = "get_true"))]
32 pub set_vals: bool,
33 #[cfg_attr(feature = "serde", serde(default = "get_true"))]
34 pub ignore_fmt_errs: bool,
35 #[cfg_attr(feature = "serde", serde(default))]
36 pub fmt_normalize: bool,
37 #[cfg_attr(feature = "serde", serde(default = "default_emit_event_for_api"))]
38 pub emit: bool,
39 #[cfg_attr(feature = "serde", serde(default = "default_undo_for_api"))]
40 pub undo: bool,
41 #[cfg_attr(feature = "serde", serde(default = "default_save_selection_for_api"))]
42 pub save_selection: bool,
43 #[cfg_attr(feature = "serde", serde(default = "default_expand_for_api"))]
44 pub expand: bool,
45}
46
47impl Default for DataFormatArgs {
48 fn default() -> Self {
49 DataFormatArgs {
50 key: SpanKey::None,
51 fmt: None,
52 set_vals: true,
53 ignore_fmt_errs: true,
54 fmt_normalize: false,
55 emit: default_emit_event_for_api(),
56 undo: default_undo_for_api(),
57 save_selection: default_save_selection_for_api(),
58 expand: default_expand_for_api(),
59 }
60 }
61}