rulemorph/normalization/
options.rs1#[derive(Debug, Clone)]
2pub struct NormalizationOptions {
3 pub max_input_bytes: usize,
4 pub max_records: usize,
5 pub max_depth: usize,
6 pub max_array_len: usize,
7 pub max_text_bytes: usize,
8 pub max_yaml_aliases: usize,
9 pub max_yaml_expanded_nodes: usize,
10 pub max_xml_nodes: usize,
11 pub max_html_nodes: usize,
12 pub max_markdown_nodes: usize,
13 pub max_markdown_table_cells: usize,
14 pub max_excel_zip_entries: usize,
15 pub max_excel_uncompressed_bytes: usize,
16 pub max_excel_entry_uncompressed_bytes: usize,
17 pub max_excel_sheets: usize,
18 pub max_excel_rows: usize,
19 pub max_excel_cells: usize,
20 pub max_excel_shared_strings: usize,
21 pub max_excel_shared_string_bytes: usize,
22 pub max_excel_styles: usize,
23 pub max_range_items: Option<usize>,
24 pub max_object_fields: usize,
25 pub max_object_key_bytes: usize,
26 pub max_object_depth: usize,
27 pub max_generated_json_nodes: usize,
28 pub max_generated_json_bytes: usize,
29}
30
31impl Default for NormalizationOptions {
32 fn default() -> Self {
33 Self {
34 max_input_bytes: 64 * 1024 * 1024,
35 max_records: 100_000,
36 max_depth: 256,
37 max_array_len: 1_000_000,
38 max_text_bytes: 8 * 1024 * 1024,
39 max_yaml_aliases: 10_000,
40 max_yaml_expanded_nodes: 1_000_000,
41 max_xml_nodes: 1_000_000,
42 max_html_nodes: 1_000_000,
43 max_markdown_nodes: 1_000_000,
44 max_markdown_table_cells: 1_000_000,
45 max_excel_zip_entries: 10_000,
46 max_excel_uncompressed_bytes: 256 * 1024 * 1024,
47 max_excel_entry_uncompressed_bytes: 64 * 1024 * 1024,
48 max_excel_sheets: 128,
49 max_excel_rows: 100_000,
50 max_excel_cells: 1_000_000,
51 max_excel_shared_strings: 1_000_000,
52 max_excel_shared_string_bytes: 64 * 1024 * 1024,
53 max_excel_styles: 65_536,
54 max_range_items: Some(10_000),
55 max_object_fields: 10_000,
56 max_object_key_bytes: 4 * 1024,
57 max_object_depth: 64,
58 max_generated_json_nodes: 100_000,
59 max_generated_json_bytes: 10 * 1024 * 1024,
60 }
61 }
62}
63
64impl NormalizationOptions {
65 pub fn large() -> Self {
66 Self {
67 max_input_bytes: 512 * 1024 * 1024,
68 max_records: 1_000_000,
69 max_array_len: 10_000_000,
70 max_excel_uncompressed_bytes: 1024 * 1024 * 1024,
71 max_excel_rows: 1_000_000,
72 max_excel_cells: 10_000_000,
73 max_markdown_nodes: 10_000_000,
74 max_markdown_table_cells: 10_000_000,
75 max_object_fields: 100_000,
76 max_object_key_bytes: 16 * 1024,
77 max_object_depth: 128,
78 max_generated_json_nodes: 1_000_000,
79 max_generated_json_bytes: 128 * 1024 * 1024,
80 ..Self::default()
81 }
82 }
83}