Skip to main content

tree_table/args/
args_data.rs

1use alloc::string::String;
2use alloc::vec;
3use alloc::vec::Vec;
4
5use crate::CellKey;
6use crate::SpanKey;
7use crate::Val;
8use crate::statics::default_emit_event_for_api;
9use crate::statics::default_save_selection_for_api;
10use crate::statics::default_undo_for_api;
11#[cfg(feature = "serde")]
12use crate::statics::get_true;
13
14#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
15#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
16#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
17#[derive(Debug, Clone, PartialEq)]
18pub struct FillDataArgs {
19    pub key: SpanKey,
20    #[cfg_attr(feature = "serde", serde(default))]
21    pub val: Option<Val>,
22    #[cfg_attr(feature = "serde", serde(default))]
23    pub add_rows: bool,
24    #[cfg_attr(feature = "serde", serde(default))]
25    pub add_cols: bool,
26    #[cfg_attr(feature = "serde", serde(default = "get_true"))]
27    pub ignore_fmt_errs: bool,
28    #[cfg_attr(feature = "serde", serde(default))]
29    pub fmt_normalize: bool,
30    #[cfg_attr(feature = "serde", serde(default = "default_emit_event_for_api"))]
31    pub emit: bool,
32    #[cfg_attr(feature = "serde", serde(default = "default_undo_for_api"))]
33    pub undo: bool,
34    #[cfg_attr(feature = "serde", serde(default = "default_save_selection_for_api"))]
35    pub save_selection: bool,
36}
37
38impl Default for FillDataArgs {
39    fn default() -> Self {
40        FillDataArgs {
41            key: SpanKey::None,
42            val: None,
43            add_rows: false,
44            add_cols: false,
45            ignore_fmt_errs: true,
46            fmt_normalize: false,
47            undo: default_undo_for_api(),
48            emit: default_emit_event_for_api(),
49            save_selection: default_save_selection_for_api(),
50        }
51    }
52}
53
54#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
55#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
56#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
57#[derive(Debug, Clone, PartialEq)]
58pub struct SetDataArgs {
59    pub data: Vec<(String, Vec<(String, Val)>)>,
60    #[cfg_attr(feature = "serde", serde(default))]
61    pub ignore_id_errs: bool,
62    #[cfg_attr(feature = "serde", serde(default = "default_emit_event_for_api"))]
63    pub emit: bool,
64    #[cfg_attr(feature = "serde", serde(default = "default_undo_for_api"))]
65    pub undo: bool,
66    #[cfg_attr(feature = "serde", serde(default = "default_save_selection_for_api"))]
67    pub save_selection: bool,
68    #[cfg_attr(feature = "serde", serde(default = "get_true"))]
69    pub ignore_fmt_errs: bool,
70    #[cfg_attr(feature = "serde", serde(default))]
71    pub fmt_normalize: bool,
72}
73
74impl Default for SetDataArgs {
75    fn default() -> Self {
76        SetDataArgs {
77            data: vec![],
78            ignore_id_errs: true,
79            emit: default_emit_event_for_api(),
80            undo: default_undo_for_api(),
81            save_selection: default_save_selection_for_api(),
82            ignore_fmt_errs: true,
83            fmt_normalize: false,
84        }
85    }
86}
87
88#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
89#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
90#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
91#[derive(Debug, Clone, PartialEq)]
92pub struct GetDataSpanArgs {
93    pub key: SpanKey,
94    pub index: bool,
95    pub header: bool,
96    pub transpose: bool,
97    pub table: bool,
98}
99
100impl Default for GetDataSpanArgs {
101    fn default() -> Self {
102        GetDataSpanArgs {
103            key: SpanKey::None,
104            index: false,
105            header: false,
106            transpose: false,
107            table: true,
108        }
109    }
110}
111
112#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
113#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
114#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
115#[derive(Debug, Clone, PartialEq)]
116pub struct GetDataIidsArgs {
117    pub rows: Vec<(String, Vec<String>)>,
118    pub ignore_invalid: bool,
119}
120
121#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
122#[cfg_attr(feature = "tsify", tsify(from_wasm_abi))]
123#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
124#[derive(Debug, Clone, PartialEq)]
125pub struct GetDataYxArgs {
126    pub coords: Vec<CellKey>,
127}