manticore_openapi/models/
highlight.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Highlight {
17 #[serde(rename = "fieldnames", skip_serializing_if = "Option::is_none")]
18 pub fieldnames: Option<Vec<String>>,
19 #[serde(rename = "fields", skip_serializing_if = "Option::is_none")]
20 pub fields: Option<Vec<models::HighlightField>>,
21 #[serde(rename = "encoder", skip_serializing_if = "Option::is_none")]
22 pub encoder: Option<Encoder>,
23 #[serde(rename = "highlight_query", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24 pub highlight_query: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
25 #[serde(rename = "pre_tags", skip_serializing_if = "Option::is_none")]
26 pub pre_tags: Option<String>,
27 #[serde(rename = "post_tags", skip_serializing_if = "Option::is_none")]
28 pub post_tags: Option<String>,
29 #[serde(rename = "no_match_size", skip_serializing_if = "Option::is_none")]
30 pub no_match_size: Option<NoMatchSize>,
31 #[serde(rename = "fragment_size", skip_serializing_if = "Option::is_none")]
32 pub fragment_size: Option<i32>,
33 #[serde(rename = "number_of_fragments", skip_serializing_if = "Option::is_none")]
34 pub number_of_fragments: Option<i32>,
35 #[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
36 pub limit: Option<i32>,
37 #[serde(rename = "limit_words", skip_serializing_if = "Option::is_none")]
38 pub limit_words: Option<i32>,
39 #[serde(rename = "limit_snippets", skip_serializing_if = "Option::is_none")]
40 pub limit_snippets: Option<i32>,
41 #[serde(rename = "limits_per_field", skip_serializing_if = "Option::is_none")]
42 pub limits_per_field: Option<bool>,
43 #[serde(rename = "use_boundaries", skip_serializing_if = "Option::is_none")]
44 pub use_boundaries: Option<bool>,
45 #[serde(rename = "force_all_words", skip_serializing_if = "Option::is_none")]
46 pub force_all_words: Option<bool>,
47 #[serde(rename = "allow_empty", skip_serializing_if = "Option::is_none")]
48 pub allow_empty: Option<bool>,
49 #[serde(rename = "emit_zones", skip_serializing_if = "Option::is_none")]
50 pub emit_zones: Option<bool>,
51 #[serde(rename = "force_snippets", skip_serializing_if = "Option::is_none")]
52 pub force_snippets: Option<bool>,
53 #[serde(rename = "around", skip_serializing_if = "Option::is_none")]
54 pub around: Option<i32>,
55 #[serde(rename = "start_snippet_id", skip_serializing_if = "Option::is_none")]
56 pub start_snippet_id: Option<i32>,
57 #[serde(rename = "html_strip_mode", skip_serializing_if = "Option::is_none")]
58 pub html_strip_mode: Option<HtmlStripMode>,
59 #[serde(rename = "snippet_boundary", skip_serializing_if = "Option::is_none")]
60 pub snippet_boundary: Option<SnippetBoundary>,
61}
62
63impl Highlight {
64 pub fn new() -> Highlight {
66 Highlight {
67 fieldnames: None,
68 fields: None,
69 encoder: None,
70 highlight_query: None,
71 pre_tags: None,
72 post_tags: None,
73 no_match_size: None,
74 fragment_size: None,
75 number_of_fragments: None,
76 limit: None,
77 limit_words: None,
78 limit_snippets: None,
79 limits_per_field: None,
80 use_boundaries: None,
81 force_all_words: None,
82 allow_empty: None,
83 emit_zones: None,
84 force_snippets: None,
85 around: None,
86 start_snippet_id: None,
87 html_strip_mode: None,
88 snippet_boundary: None,
89 }
90 }
91}
92#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
94pub enum Encoder {
95 #[serde(rename = "default")]
96 Default,
97 #[serde(rename = "html")]
98 Html,
99}
100
101impl Default for Encoder {
102 fn default() -> Encoder {
103 Self::Default
104 }
105}
106#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
108pub enum NoMatchSize {
109 #[serde(rename = "0")]
110 Variant0,
111 #[serde(rename = "1")]
112 Variant1,
113}
114
115impl Default for NoMatchSize {
116 fn default() -> NoMatchSize {
117 Self::Variant0
118 }
119}
120#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
122pub enum HtmlStripMode {
123 #[serde(rename = "none")]
124 None,
125 #[serde(rename = "strip")]
126 Strip,
127 #[serde(rename = "index")]
128 Index,
129 #[serde(rename = "retain")]
130 Retain,
131}
132
133impl Default for HtmlStripMode {
134 fn default() -> HtmlStripMode {
135 Self::None
136 }
137}
138#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
140pub enum SnippetBoundary {
141 #[serde(rename = "sentence")]
142 Sentence,
143 #[serde(rename = "paragraph")]
144 Paragraph,
145 #[serde(rename = "zone")]
146 Zone,
147}
148
149impl Default for SnippetBoundary {
150 fn default() -> SnippetBoundary {
151 Self::Sentence
152 }
153}
154