@@ -107,11 +107,6 @@ impl Chatlist {
107107 Ok ( ( chat_id, msg_id) )
108108 } ;
109109
110- let process_rows = |rows : rusqlite:: MappedRows < _ > | {
111- rows. collect :: < std:: result:: Result < Vec < _ > , _ > > ( )
112- . map_err ( Into :: into)
113- } ;
114-
115110 let skip_id = if flag_for_forwarding {
116111 ChatId :: lookup_by_contact ( context, ContactId :: DEVICE )
117112 . await ?
@@ -132,7 +127,7 @@ impl Chatlist {
132127 // groups. Otherwise it would be hard to follow conversations.
133128 let ids = if let Some ( query_contact_id) = query_contact_id {
134129 // show chats shared with a given contact
135- context. sql . query_map (
130+ context. sql . query_map_vec (
136131 "SELECT c.id, m.id
137132 FROM chats c
138133 LEFT JOIN msgs m
@@ -150,7 +145,6 @@ impl Chatlist {
150145 ORDER BY c.archived=?3 DESC, IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;" ,
151146 ( MessageState :: OutDraft , query_contact_id, ChatVisibility :: Pinned ) ,
152147 process_row,
153- process_rows,
154148 ) . await ?
155149 } else if flag_archived_only {
156150 // show archived chats
@@ -159,7 +153,7 @@ impl Chatlist {
159153 // and adapting the number requires larger refactorings and seems not to be worth the effort)
160154 context
161155 . sql
162- . query_map (
156+ . query_map_vec (
163157 "SELECT c.id, m.id
164158 FROM chats c
165159 LEFT JOIN msgs m
@@ -177,7 +171,6 @@ impl Chatlist {
177171 ORDER BY IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;" ,
178172 ( MessageState :: OutDraft , ) ,
179173 process_row,
180- process_rows,
181174 )
182175 . await ?
183176 } else if let Some ( query) = query {
@@ -195,7 +188,7 @@ impl Chatlist {
195188 let str_like_cmd = format ! ( "%{query}%" ) ;
196189 context
197190 . sql
198- . query_map (
191+ . query_map_vec (
199192 "SELECT c.id, m.id
200193 FROM chats c
201194 LEFT JOIN msgs m
@@ -214,7 +207,6 @@ impl Chatlist {
214207 ORDER BY IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;" ,
215208 ( MessageState :: OutDraft , skip_id, str_like_cmd, only_unread, MessageState :: InFresh ) ,
216209 process_row,
217- process_rows,
218210 )
219211 . await ?
220212 } else {
@@ -229,7 +221,7 @@ impl Chatlist {
229221 let msg_id: Option < MsgId > = row. get ( 3 ) ?;
230222 Ok ( ( chat_id, typ, param, msg_id) )
231223 } ;
232- let process_rows = |rows : rusqlite:: MappedRows < _ > | {
224+ let process_rows = |rows : rusqlite:: AndThenRows < _ > | {
233225 rows. filter_map ( |row : std:: result:: Result < ( _ , _ , Params , _ ) , _ > | match row {
234226 Ok ( ( chat_id, typ, param, msg_id) ) => {
235227 if typ == Chattype :: Mailinglist
@@ -243,7 +235,6 @@ impl Chatlist {
243235 Err ( e) => Some ( Err ( e) ) ,
244236 } )
245237 . collect :: < std:: result:: Result < Vec < _ > , _ > > ( )
246- . map_err ( Into :: into)
247238 } ;
248239 context. sql . query_map (
249240 "SELECT c.id, c.type, c.param, m.id
@@ -272,7 +263,7 @@ impl Chatlist {
272263 ) . await ?
273264 } else {
274265 // show normal chatlist
275- context. sql . query_map (
266+ context. sql . query_map_vec (
276267 "SELECT c.id, m.id
277268 FROM chats c
278269 LEFT JOIN msgs m
@@ -290,7 +281,6 @@ impl Chatlist {
290281 ORDER BY c.id=0 DESC, c.archived=? DESC, IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;" ,
291282 ( MessageState :: OutDraft , skip_id, ChatVisibility :: Archived , ChatVisibility :: Pinned ) ,
292283 process_row,
293- process_rows,
294284 ) . await ?
295285 } ;
296286 if !flag_no_specials && get_archived_cnt ( context) . await ? > 0 {
0 commit comments