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}