Author: Kevin Schoon [me@kevinschoon.com]
Hash: c7905430839f3b2af15ed1fbcaa845e75c668e71
Timestamp: Mon, 12 Aug 2024 15:17:09 +0000 (2 months ago)

+54 -1033 +/-8 browse
rm melib for the moment
1diff --git a/Cargo.lock b/Cargo.lock
2index 1e7864d..802bfc3 100644
3--- a/Cargo.lock
4+++ b/Cargo.lock
5 @@ -30,208 +30,12 @@ dependencies = [
6 ]
7
8 [[package]]
9- name = "aho-corasick"
10- version = "1.1.3"
11- source = "registry+https://github.com/rust-lang/crates.io-index"
12- checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
13- dependencies = [
14- "memchr",
15- ]
16-
17- [[package]]
18 name = "allocator-api2"
19 version = "0.2.18"
20 source = "registry+https://github.com/rust-lang/crates.io-index"
21 checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
22
23 [[package]]
24- name = "async-channel"
25- version = "1.9.0"
26- source = "registry+https://github.com/rust-lang/crates.io-index"
27- checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
28- dependencies = [
29- "concurrent-queue",
30- "event-listener 2.5.3",
31- "futures-core",
32- ]
33-
34- [[package]]
35- name = "async-channel"
36- version = "2.3.1"
37- source = "registry+https://github.com/rust-lang/crates.io-index"
38- checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
39- dependencies = [
40- "concurrent-queue",
41- "event-listener-strategy",
42- "futures-core",
43- "pin-project-lite",
44- ]
45-
46- [[package]]
47- name = "async-executor"
48- version = "1.13.0"
49- source = "registry+https://github.com/rust-lang/crates.io-index"
50- checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
51- dependencies = [
52- "async-task",
53- "concurrent-queue",
54- "fastrand 2.1.0",
55- "futures-lite 2.3.0",
56- "slab",
57- ]
58-
59- [[package]]
60- name = "async-fs"
61- version = "1.6.0"
62- source = "registry+https://github.com/rust-lang/crates.io-index"
63- checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
64- dependencies = [
65- "async-lock 2.8.0",
66- "autocfg",
67- "blocking",
68- "futures-lite 1.13.0",
69- ]
70-
71- [[package]]
72- name = "async-io"
73- version = "1.13.0"
74- source = "registry+https://github.com/rust-lang/crates.io-index"
75- checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
76- dependencies = [
77- "async-lock 2.8.0",
78- "autocfg",
79- "cfg-if",
80- "concurrent-queue",
81- "futures-lite 1.13.0",
82- "log",
83- "parking",
84- "polling 2.8.0",
85- "rustix 0.37.27",
86- "slab",
87- "socket2 0.4.10",
88- "waker-fn",
89- ]
90-
91- [[package]]
92- name = "async-io"
93- version = "2.3.3"
94- source = "registry+https://github.com/rust-lang/crates.io-index"
95- checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
96- dependencies = [
97- "async-lock 3.4.0",
98- "cfg-if",
99- "concurrent-queue",
100- "futures-io",
101- "futures-lite 2.3.0",
102- "parking",
103- "polling 3.7.2",
104- "rustix 0.38.34",
105- "slab",
106- "tracing",
107- "windows-sys 0.52.0",
108- ]
109-
110- [[package]]
111- name = "async-lock"
112- version = "2.8.0"
113- source = "registry+https://github.com/rust-lang/crates.io-index"
114- checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
115- dependencies = [
116- "event-listener 2.5.3",
117- ]
118-
119- [[package]]
120- name = "async-lock"
121- version = "3.4.0"
122- source = "registry+https://github.com/rust-lang/crates.io-index"
123- checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
124- dependencies = [
125- "event-listener 5.3.1",
126- "event-listener-strategy",
127- "pin-project-lite",
128- ]
129-
130- [[package]]
131- name = "async-net"
132- version = "1.8.0"
133- source = "registry+https://github.com/rust-lang/crates.io-index"
134- checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
135- dependencies = [
136- "async-io 1.13.0",
137- "blocking",
138- "futures-lite 1.13.0",
139- ]
140-
141- [[package]]
142- name = "async-process"
143- version = "1.8.1"
144- source = "registry+https://github.com/rust-lang/crates.io-index"
145- checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
146- dependencies = [
147- "async-io 1.13.0",
148- "async-lock 2.8.0",
149- "async-signal",
150- "blocking",
151- "cfg-if",
152- "event-listener 3.1.0",
153- "futures-lite 1.13.0",
154- "rustix 0.38.34",
155- "windows-sys 0.48.0",
156- ]
157-
158- [[package]]
159- name = "async-signal"
160- version = "0.2.9"
161- source = "registry+https://github.com/rust-lang/crates.io-index"
162- checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32"
163- dependencies = [
164- "async-io 2.3.3",
165- "async-lock 3.4.0",
166- "atomic-waker",
167- "cfg-if",
168- "futures-core",
169- "futures-io",
170- "rustix 0.38.34",
171- "signal-hook-registry",
172- "slab",
173- "windows-sys 0.52.0",
174- ]
175-
176- [[package]]
177- name = "async-stream"
178- version = "0.3.5"
179- source = "registry+https://github.com/rust-lang/crates.io-index"
180- checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
181- dependencies = [
182- "async-stream-impl",
183- "futures-core",
184- "pin-project-lite",
185- ]
186-
187- [[package]]
188- name = "async-stream-impl"
189- version = "0.3.5"
190- source = "registry+https://github.com/rust-lang/crates.io-index"
191- checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
192- dependencies = [
193- "proc-macro2",
194- "quote",
195- "syn",
196- ]
197-
198- [[package]]
199- name = "async-task"
200- version = "4.7.1"
201- source = "registry+https://github.com/rust-lang/crates.io-index"
202- checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
203-
204- [[package]]
205- name = "atomic-waker"
206- version = "1.1.2"
207- source = "registry+https://github.com/rust-lang/crates.io-index"
208- checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
209-
210- [[package]]
211 name = "autocfg"
212 version = "1.3.0"
213 source = "registry+https://github.com/rust-lang/crates.io-index"
214 @@ -253,38 +57,10 @@ dependencies = [
215 ]
216
217 [[package]]
218- name = "base64"
219- version = "0.13.1"
220- source = "registry+https://github.com/rust-lang/crates.io-index"
221- checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
222-
223- [[package]]
224- name = "bitflags"
225- version = "1.3.2"
226- source = "registry+https://github.com/rust-lang/crates.io-index"
227- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
228-
229- [[package]]
230 name = "bitflags"
231 version = "2.6.0"
232 source = "registry+https://github.com/rust-lang/crates.io-index"
233 checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
234- dependencies = [
235- "serde",
236- ]
237-
238- [[package]]
239- name = "blocking"
240- version = "1.6.1"
241- source = "registry+https://github.com/rust-lang/crates.io-index"
242- checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
243- dependencies = [
244- "async-channel 2.3.1",
245- "async-task",
246- "futures-io",
247- "futures-lite 2.3.0",
248- "piper",
249- ]
250
251 [[package]]
252 name = "bytes"
253 @@ -305,116 +81,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
254 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
255
256 [[package]]
257- name = "concurrent-queue"
258- version = "2.5.0"
259- source = "registry+https://github.com/rust-lang/crates.io-index"
260- checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
261- dependencies = [
262- "crossbeam-utils",
263- ]
264-
265- [[package]]
266- name = "core-foundation"
267- version = "0.9.4"
268- source = "registry+https://github.com/rust-lang/crates.io-index"
269- checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
270- dependencies = [
271- "core-foundation-sys",
272- "libc",
273- ]
274-
275- [[package]]
276- name = "core-foundation-sys"
277- version = "0.8.6"
278- source = "registry+https://github.com/rust-lang/crates.io-index"
279- checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
280-
281- [[package]]
282- name = "crc32fast"
283- version = "1.4.2"
284- source = "registry+https://github.com/rust-lang/crates.io-index"
285- checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
286- dependencies = [
287- "cfg-if",
288- ]
289-
290- [[package]]
291- name = "crossbeam-utils"
292- version = "0.8.20"
293- source = "registry+https://github.com/rust-lang/crates.io-index"
294- checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
295-
296- [[package]]
297- name = "data-encoding"
298- version = "2.6.0"
299- source = "registry+https://github.com/rust-lang/crates.io-index"
300- checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
301-
302- [[package]]
303- name = "encoding"
304- version = "0.2.33"
305- source = "registry+https://github.com/rust-lang/crates.io-index"
306- checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
307- dependencies = [
308- "encoding-index-japanese",
309- "encoding-index-korean",
310- "encoding-index-simpchinese",
311- "encoding-index-singlebyte",
312- "encoding-index-tradchinese",
313- ]
314-
315- [[package]]
316- name = "encoding-index-japanese"
317- version = "1.20141219.5"
318- source = "registry+https://github.com/rust-lang/crates.io-index"
319- checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
320- dependencies = [
321- "encoding_index_tests",
322- ]
323-
324- [[package]]
325- name = "encoding-index-korean"
326- version = "1.20141219.5"
327- source = "registry+https://github.com/rust-lang/crates.io-index"
328- checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
329- dependencies = [
330- "encoding_index_tests",
331- ]
332-
333- [[package]]
334- name = "encoding-index-simpchinese"
335- version = "1.20141219.5"
336- source = "registry+https://github.com/rust-lang/crates.io-index"
337- checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
338- dependencies = [
339- "encoding_index_tests",
340- ]
341-
342- [[package]]
343- name = "encoding-index-singlebyte"
344- version = "1.20141219.5"
345- source = "registry+https://github.com/rust-lang/crates.io-index"
346- checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
347- dependencies = [
348- "encoding_index_tests",
349- ]
350-
351- [[package]]
352- name = "encoding-index-tradchinese"
353- version = "1.20141219.5"
354+ name = "email_address"
355+ version = "0.2.9"
356 source = "registry+https://github.com/rust-lang/crates.io-index"
357- checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
358+ checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449"
359 dependencies = [
360- "encoding_index_tests",
361+ "serde",
362 ]
363
364 [[package]]
365- name = "encoding_index_tests"
366- version = "0.1.4"
367- source = "registry+https://github.com/rust-lang/crates.io-index"
368- checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
369-
370- [[package]]
371 name = "encoding_rs"
372 version = "0.8.34"
373 source = "registry+https://github.com/rust-lang/crates.io-index"
374 @@ -424,94 +99,6 @@ dependencies = [
375 ]
376
377 [[package]]
378- name = "errno"
379- version = "0.3.9"
380- source = "registry+https://github.com/rust-lang/crates.io-index"
381- checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
382- dependencies = [
383- "libc",
384- "windows-sys 0.52.0",
385- ]
386-
387- [[package]]
388- name = "event-listener"
389- version = "2.5.3"
390- source = "registry+https://github.com/rust-lang/crates.io-index"
391- checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
392-
393- [[package]]
394- name = "event-listener"
395- version = "3.1.0"
396- source = "registry+https://github.com/rust-lang/crates.io-index"
397- checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
398- dependencies = [
399- "concurrent-queue",
400- "parking",
401- "pin-project-lite",
402- ]
403-
404- [[package]]
405- name = "event-listener"
406- version = "5.3.1"
407- source = "registry+https://github.com/rust-lang/crates.io-index"
408- checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
409- dependencies = [
410- "concurrent-queue",
411- "parking",
412- "pin-project-lite",
413- ]
414-
415- [[package]]
416- name = "event-listener-strategy"
417- version = "0.5.2"
418- source = "registry+https://github.com/rust-lang/crates.io-index"
419- checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
420- dependencies = [
421- "event-listener 5.3.1",
422- "pin-project-lite",
423- ]
424-
425- [[package]]
426- name = "fastrand"
427- version = "1.9.0"
428- source = "registry+https://github.com/rust-lang/crates.io-index"
429- checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
430- dependencies = [
431- "instant",
432- ]
433-
434- [[package]]
435- name = "fastrand"
436- version = "2.1.0"
437- source = "registry+https://github.com/rust-lang/crates.io-index"
438- checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
439-
440- [[package]]
441- name = "flate2"
442- version = "1.0.30"
443- source = "registry+https://github.com/rust-lang/crates.io-index"
444- checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
445- dependencies = [
446- "crc32fast",
447- "miniz_oxide",
448- ]
449-
450- [[package]]
451- name = "foreign-types"
452- version = "0.3.2"
453- source = "registry+https://github.com/rust-lang/crates.io-index"
454- checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
455- dependencies = [
456- "foreign-types-shared",
457- ]
458-
459- [[package]]
460- name = "foreign-types-shared"
461- version = "0.1.1"
462- source = "registry+https://github.com/rust-lang/crates.io-index"
463- checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
464-
465- [[package]]
466 name = "form_urlencoded"
467 version = "1.2.1"
468 source = "registry+https://github.com/rust-lang/crates.io-index"
469 @@ -569,34 +156,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
470 checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
471
472 [[package]]
473- name = "futures-lite"
474- version = "1.13.0"
475- source = "registry+https://github.com/rust-lang/crates.io-index"
476- checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
477- dependencies = [
478- "fastrand 1.9.0",
479- "futures-core",
480- "futures-io",
481- "memchr",
482- "parking",
483- "pin-project-lite",
484- "waker-fn",
485- ]
486-
487- [[package]]
488- name = "futures-lite"
489- version = "2.3.0"
490- source = "registry+https://github.com/rust-lang/crates.io-index"
491- checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
492- dependencies = [
493- "fastrand 2.1.0",
494- "futures-core",
495- "futures-io",
496- "parking",
497- "pin-project-lite",
498- ]
499-
500- [[package]]
501 name = "futures-macro"
502 version = "0.3.30"
503 source = "registry+https://github.com/rust-lang/crates.io-index"
504 @@ -638,17 +197,6 @@ dependencies = [
505 ]
506
507 [[package]]
508- name = "getrandom"
509- version = "0.2.15"
510- source = "registry+https://github.com/rust-lang/crates.io-index"
511- checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
512- dependencies = [
513- "cfg-if",
514- "libc",
515- "wasi",
516- ]
517-
518- [[package]]
519 name = "gimli"
520 version = "0.29.0"
521 source = "registry+https://github.com/rust-lang/crates.io-index"
522 @@ -656,12 +204,6 @@ checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
523
524 [[package]]
525 name = "hashbrown"
526- version = "0.12.3"
527- source = "registry+https://github.com/rust-lang/crates.io-index"
528- checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
529-
530- [[package]]
531- name = "hashbrown"
532 version = "0.14.5"
533 source = "registry+https://github.com/rust-lang/crates.io-index"
534 checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
535 @@ -677,91 +219,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
536 checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
537
538 [[package]]
539- name = "hermit-abi"
540- version = "0.4.0"
541- source = "registry+https://github.com/rust-lang/crates.io-index"
542- checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
543-
544- [[package]]
545 name = "idna"
546 version = "0.5.0"
547 source = "registry+https://github.com/rust-lang/crates.io-index"
548 checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
549- dependencies = [
550- "unicode-bidi",
551- "unicode-normalization",
552- ]
553-
554- [[package]]
555- name = "indexmap"
556- version = "1.9.3"
557- source = "registry+https://github.com/rust-lang/crates.io-index"
558- checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
559- dependencies = [
560- "autocfg",
561- "hashbrown 0.12.3",
562- "serde",
563- ]
564-
565- [[package]]
566- name = "instant"
567- version = "0.1.13"
568- source = "registry+https://github.com/rust-lang/crates.io-index"
569- checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
570- dependencies = [
571- "cfg-if",
572- ]
573-
574- [[package]]
575- name = "io-lifetimes"
576- version = "1.0.11"
577- source = "registry+https://github.com/rust-lang/crates.io-index"
578- checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
579- dependencies = [
580- "hermit-abi 0.3.9",
581- "libc",
582- "windows-sys 0.48.0",
583- ]
584-
585- [[package]]
586- name = "itoa"
587- version = "1.0.11"
588- source = "registry+https://github.com/rust-lang/crates.io-index"
589- checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
590-
591- [[package]]
592- name = "lazy_static"
593- version = "1.5.0"
594- source = "registry+https://github.com/rust-lang/crates.io-index"
595- checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
596-
597- [[package]]
598- name = "libc"
599- version = "0.2.155"
600- source = "registry+https://github.com/rust-lang/crates.io-index"
601- checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
602-
603- [[package]]
604- name = "libloading"
605- version = "0.7.4"
606- source = "registry+https://github.com/rust-lang/crates.io-index"
607- checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
608- dependencies = [
609- "cfg-if",
610- "winapi",
611+ dependencies = [
612+ "unicode-bidi",
613+ "unicode-normalization",
614 ]
615
616 [[package]]
617- name = "linux-raw-sys"
618- version = "0.3.8"
619+ name = "lazy_static"
620+ version = "1.5.0"
621 source = "registry+https://github.com/rust-lang/crates.io-index"
622- checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
623+ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
624
625 [[package]]
626- name = "linux-raw-sys"
627- version = "0.4.14"
628+ name = "libc"
629+ version = "0.2.155"
630 source = "registry+https://github.com/rust-lang/crates.io-index"
631- checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
632+ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
633
634 [[package]]
635 name = "lock_api"
636 @@ -794,10 +271,10 @@ name = "maitred"
637 version = "0.1.0"
638 dependencies = [
639 "bytes",
640+ "email_address",
641 "futures",
642 "mail-parser",
643 "md5",
644- "melib",
645 "smtp-proto",
646 "thiserror",
647 "tokio",
648 @@ -825,62 +302,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
649 checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
650
651 [[package]]
652- name = "melib"
653- version = "0.8.6"
654- source = "registry+https://github.com/rust-lang/crates.io-index"
655- checksum = "4f233699ab6a71d41529624e3d9600c8a3a208874fcf4ec4a05778314afdd2e7"
656- dependencies = [
657- "async-stream",
658- "base64",
659- "bitflags 2.6.0",
660- "data-encoding",
661- "encoding",
662- "encoding_rs",
663- "flate2",
664- "futures",
665- "indexmap",
666- "libc",
667- "libloading",
668- "log",
669- "native-tls",
670- "nix",
671- "nom",
672- "polling 2.8.0",
673- "regex",
674- "serde",
675- "serde_derive",
676- "serde_json",
677- "serde_path_to_error",
678- "smallvec",
679- "smol",
680- "socket2 0.5.7",
681- "unicode-segmentation",
682- "uuid",
683- "xdg",
684- ]
685-
686- [[package]]
687 name = "memchr"
688 version = "2.7.4"
689 source = "registry+https://github.com/rust-lang/crates.io-index"
690 checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
691
692 [[package]]
693- name = "memoffset"
694- version = "0.9.1"
695- source = "registry+https://github.com/rust-lang/crates.io-index"
696- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
697- dependencies = [
698- "autocfg",
699- ]
700-
701- [[package]]
702- name = "minimal-lexical"
703- version = "0.2.1"
704- source = "registry+https://github.com/rust-lang/crates.io-index"
705- checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
706-
707- [[package]]
708 name = "miniz_oxide"
709 version = "0.7.4"
710 source = "registry+https://github.com/rust-lang/crates.io-index"
711 @@ -895,49 +322,10 @@ version = "1.0.1"
712 source = "registry+https://github.com/rust-lang/crates.io-index"
713 checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4"
714 dependencies = [
715- "hermit-abi 0.3.9",
716+ "hermit-abi",
717 "libc",
718 "wasi",
719- "windows-sys 0.52.0",
720- ]
721-
722- [[package]]
723- name = "native-tls"
724- version = "0.2.12"
725- source = "registry+https://github.com/rust-lang/crates.io-index"
726- checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
727- dependencies = [
728- "libc",
729- "log",
730- "openssl",
731- "openssl-probe",
732- "openssl-sys",
733- "schannel",
734- "security-framework",
735- "security-framework-sys",
736- "tempfile",
737- ]
738-
739- [[package]]
740- name = "nix"
741- version = "0.27.1"
742- source = "registry+https://github.com/rust-lang/crates.io-index"
743- checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
744- dependencies = [
745- "bitflags 2.6.0",
746- "cfg-if",
747- "libc",
748- "memoffset",
749- ]
750-
751- [[package]]
752- name = "nom"
753- version = "7.1.3"
754- source = "registry+https://github.com/rust-lang/crates.io-index"
755- checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
756- dependencies = [
757- "memchr",
758- "minimal-lexical",
759+ "windows-sys",
760 ]
761
762 [[package]]
763 @@ -966,62 +354,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
764 checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
765
766 [[package]]
767- name = "openssl"
768- version = "0.10.66"
769- source = "registry+https://github.com/rust-lang/crates.io-index"
770- checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
771- dependencies = [
772- "bitflags 2.6.0",
773- "cfg-if",
774- "foreign-types",
775- "libc",
776- "once_cell",
777- "openssl-macros",
778- "openssl-sys",
779- ]
780-
781- [[package]]
782- name = "openssl-macros"
783- version = "0.1.1"
784- source = "registry+https://github.com/rust-lang/crates.io-index"
785- checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
786- dependencies = [
787- "proc-macro2",
788- "quote",
789- "syn",
790- ]
791-
792- [[package]]
793- name = "openssl-probe"
794- version = "0.1.5"
795- source = "registry+https://github.com/rust-lang/crates.io-index"
796- checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
797-
798- [[package]]
799- name = "openssl-sys"
800- version = "0.9.103"
801- source = "registry+https://github.com/rust-lang/crates.io-index"
802- checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
803- dependencies = [
804- "cc",
805- "libc",
806- "pkg-config",
807- "vcpkg",
808- ]
809-
810- [[package]]
811 name = "overload"
812 version = "0.1.1"
813 source = "registry+https://github.com/rust-lang/crates.io-index"
814 checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
815
816 [[package]]
817- name = "parking"
818- version = "2.2.0"
819- source = "registry+https://github.com/rust-lang/crates.io-index"
820- checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
821-
822- [[package]]
823 name = "parking_lot"
824 version = "0.12.3"
825 source = "registry+https://github.com/rust-lang/crates.io-index"
826 @@ -1041,7 +379,7 @@ dependencies = [
827 "libc",
828 "redox_syscall",
829 "smallvec",
830- "windows-targets 0.52.6",
831+ "windows-targets",
832 ]
833
834 [[package]]
835 @@ -1063,54 +401,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
836 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
837
838 [[package]]
839- name = "piper"
840- version = "0.2.3"
841- source = "registry+https://github.com/rust-lang/crates.io-index"
842- checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
843- dependencies = [
844- "atomic-waker",
845- "fastrand 2.1.0",
846- "futures-io",
847- ]
848-
849- [[package]]
850- name = "pkg-config"
851- version = "0.3.30"
852- source = "registry+https://github.com/rust-lang/crates.io-index"
853- checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
854-
855- [[package]]
856- name = "polling"
857- version = "2.8.0"
858- source = "registry+https://github.com/rust-lang/crates.io-index"
859- checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
860- dependencies = [
861- "autocfg",
862- "bitflags 1.3.2",
863- "cfg-if",
864- "concurrent-queue",
865- "libc",
866- "log",
867- "pin-project-lite",
868- "windows-sys 0.48.0",
869- ]
870-
871- [[package]]
872- name = "polling"
873- version = "3.7.2"
874- source = "registry+https://github.com/rust-lang/crates.io-index"
875- checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b"
876- dependencies = [
877- "cfg-if",
878- "concurrent-queue",
879- "hermit-abi 0.4.0",
880- "pin-project-lite",
881- "rustix 0.38.34",
882- "tracing",
883- "windows-sys 0.52.0",
884- ]
885-
886- [[package]]
887 name = "proc-macro2"
888 version = "1.0.86"
889 source = "registry+https://github.com/rust-lang/crates.io-index"
890 @@ -1134,116 +424,22 @@ version = "0.5.3"
891 source = "registry+https://github.com/rust-lang/crates.io-index"
892 checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
893 dependencies = [
894- "bitflags 2.6.0",
895- ]
896-
897- [[package]]
898- name = "regex"
899- version = "1.10.5"
900- source = "registry+https://github.com/rust-lang/crates.io-index"
901- checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
902- dependencies = [
903- "aho-corasick",
904- "memchr",
905- "regex-automata",
906- "regex-syntax",
907- ]
908-
909- [[package]]
910- name = "regex-automata"
911- version = "0.4.7"
912- source = "registry+https://github.com/rust-lang/crates.io-index"
913- checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
914- dependencies = [
915- "aho-corasick",
916- "memchr",
917- "regex-syntax",
918+ "bitflags",
919 ]
920
921 [[package]]
922- name = "regex-syntax"
923- version = "0.8.4"
924- source = "registry+https://github.com/rust-lang/crates.io-index"
925- checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
926-
927- [[package]]
928 name = "rustc-demangle"
929 version = "0.1.24"
930 source = "registry+https://github.com/rust-lang/crates.io-index"
931 checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
932
933 [[package]]
934- name = "rustix"
935- version = "0.37.27"
936- source = "registry+https://github.com/rust-lang/crates.io-index"
937- checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
938- dependencies = [
939- "bitflags 1.3.2",
940- "errno",
941- "io-lifetimes",
942- "libc",
943- "linux-raw-sys 0.3.8",
944- "windows-sys 0.48.0",
945- ]
946-
947- [[package]]
948- name = "rustix"
949- version = "0.38.34"
950- source = "registry+https://github.com/rust-lang/crates.io-index"
951- checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
952- dependencies = [
953- "bitflags 2.6.0",
954- "errno",
955- "libc",
956- "linux-raw-sys 0.4.14",
957- "windows-sys 0.52.0",
958- ]
959-
960- [[package]]
961- name = "ryu"
962- version = "1.0.18"
963- source = "registry+https://github.com/rust-lang/crates.io-index"
964- checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
965-
966- [[package]]
967- name = "schannel"
968- version = "0.1.23"
969- source = "registry+https://github.com/rust-lang/crates.io-index"
970- checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
971- dependencies = [
972- "windows-sys 0.52.0",
973- ]
974-
975- [[package]]
976 name = "scopeguard"
977 version = "1.2.0"
978 source = "registry+https://github.com/rust-lang/crates.io-index"
979 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
980
981 [[package]]
982- name = "security-framework"
983- version = "2.11.1"
984- source = "registry+https://github.com/rust-lang/crates.io-index"
985- checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
986- dependencies = [
987- "bitflags 2.6.0",
988- "core-foundation",
989- "core-foundation-sys",
990- "libc",
991- "security-framework-sys",
992- ]
993-
994- [[package]]
995- name = "security-framework-sys"
996- version = "2.11.1"
997- source = "registry+https://github.com/rust-lang/crates.io-index"
998- checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
999- dependencies = [
1000- "core-foundation-sys",
1001- "libc",
1002- ]
1003-
1004- [[package]]
1005 name = "serde"
1006 version = "1.0.204"
1007 source = "registry+https://github.com/rust-lang/crates.io-index"
1008 @@ -1264,33 +460,6 @@ dependencies = [
1009 ]
1010
1011 [[package]]
1012- name = "serde_json"
1013- version = "1.0.120"
1014- source = "registry+https://github.com/rust-lang/crates.io-index"
1015- checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
1016- dependencies = [
1017- "itoa",
1018- "ryu",
1019- "serde",
1020- ]
1021-
1022- [[package]]
1023- name = "serde_path_to_error"
1024- version = "0.1.16"
1025- source = "registry+https://github.com/rust-lang/crates.io-index"
1026- checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
1027- dependencies = [
1028- "itoa",
1029- "serde",
1030- ]
1031-
1032- [[package]]
1033- name = "sha1_smol"
1034- version = "1.0.1"
1035- source = "registry+https://github.com/rust-lang/crates.io-index"
1036- checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
1037-
1038- [[package]]
1039 name = "sharded-slab"
1040 version = "0.1.7"
1041 source = "registry+https://github.com/rust-lang/crates.io-index"
1042 @@ -1322,26 +491,6 @@ name = "smallvec"
1043 version = "1.13.2"
1044 source = "registry+https://github.com/rust-lang/crates.io-index"
1045 checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
1046- dependencies = [
1047- "serde",
1048- ]
1049-
1050- [[package]]
1051- name = "smol"
1052- version = "1.3.0"
1053- source = "registry+https://github.com/rust-lang/crates.io-index"
1054- checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
1055- dependencies = [
1056- "async-channel 1.9.0",
1057- "async-executor",
1058- "async-fs",
1059- "async-io 1.13.0",
1060- "async-lock 2.8.0",
1061- "async-net",
1062- "async-process",
1063- "blocking",
1064- "futures-lite 1.13.0",
1065- ]
1066
1067 [[package]]
1068 name = "smtp-proto"
1069 @@ -1354,22 +503,12 @@ dependencies = [
1070
1071 [[package]]
1072 name = "socket2"
1073- version = "0.4.10"
1074- source = "registry+https://github.com/rust-lang/crates.io-index"
1075- checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
1076- dependencies = [
1077- "libc",
1078- "winapi",
1079- ]
1080-
1081- [[package]]
1082- name = "socket2"
1083 version = "0.5.7"
1084 source = "registry+https://github.com/rust-lang/crates.io-index"
1085 checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
1086 dependencies = [
1087 "libc",
1088- "windows-sys 0.52.0",
1089+ "windows-sys",
1090 ]
1091
1092 [[package]]
1093 @@ -1384,18 +523,6 @@ dependencies = [
1094 ]
1095
1096 [[package]]
1097- name = "tempfile"
1098- version = "3.10.1"
1099- source = "registry+https://github.com/rust-lang/crates.io-index"
1100- checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
1101- dependencies = [
1102- "cfg-if",
1103- "fastrand 2.1.0",
1104- "rustix 0.38.34",
1105- "windows-sys 0.52.0",
1106- ]
1107-
1108- [[package]]
1109 name = "thiserror"
1110 version = "1.0.63"
1111 source = "registry+https://github.com/rust-lang/crates.io-index"
1112 @@ -1453,9 +580,9 @@ dependencies = [
1113 "parking_lot",
1114 "pin-project-lite",
1115 "signal-hook-registry",
1116- "socket2 0.5.7",
1117+ "socket2",
1118 "tokio-macros",
1119- "windows-sys 0.52.0",
1120+ "windows-sys",
1121 ]
1122
1123 [[package]]
1124 @@ -1492,7 +619,7 @@ dependencies = [
1125 "futures-io",
1126 "futures-sink",
1127 "futures-util",
1128- "hashbrown 0.14.5",
1129+ "hashbrown",
1130 "pin-project-lite",
1131 "slab",
1132 "tokio",
1133 @@ -1578,12 +705,6 @@ dependencies = [
1134 ]
1135
1136 [[package]]
1137- name = "unicode-segmentation"
1138- version = "1.11.0"
1139- source = "registry+https://github.com/rust-lang/crates.io-index"
1140- checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
1141-
1142- [[package]]
1143 name = "url"
1144 version = "2.5.2"
1145 source = "registry+https://github.com/rust-lang/crates.io-index"
1146 @@ -1595,41 +716,18 @@ dependencies = [
1147 ]
1148
1149 [[package]]
1150- name = "uuid"
1151- version = "1.10.0"
1152- source = "registry+https://github.com/rust-lang/crates.io-index"
1153- checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
1154- dependencies = [
1155- "getrandom",
1156- "serde",
1157- "sha1_smol",
1158- ]
1159-
1160- [[package]]
1161 name = "valuable"
1162 version = "0.1.0"
1163 source = "registry+https://github.com/rust-lang/crates.io-index"
1164 checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
1165
1166 [[package]]
1167- name = "vcpkg"
1168- version = "0.2.15"
1169- source = "registry+https://github.com/rust-lang/crates.io-index"
1170- checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
1171-
1172- [[package]]
1173 name = "version_check"
1174 version = "0.9.5"
1175 source = "registry+https://github.com/rust-lang/crates.io-index"
1176 checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
1177
1178 [[package]]
1179- name = "waker-fn"
1180- version = "1.2.0"
1181- source = "registry+https://github.com/rust-lang/crates.io-index"
1182- checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
1183-
1184- [[package]]
1185 name = "wasi"
1186 version = "0.11.0+wasi-snapshot-preview1"
1187 source = "registry+https://github.com/rust-lang/crates.io-index"
1188 @@ -1659,35 +757,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1189
1190 [[package]]
1191 name = "windows-sys"
1192- version = "0.48.0"
1193- source = "registry+https://github.com/rust-lang/crates.io-index"
1194- checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
1195- dependencies = [
1196- "windows-targets 0.48.5",
1197- ]
1198-
1199- [[package]]
1200- name = "windows-sys"
1201 version = "0.52.0"
1202 source = "registry+https://github.com/rust-lang/crates.io-index"
1203 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
1204 dependencies = [
1205- "windows-targets 0.52.6",
1206- ]
1207-
1208- [[package]]
1209- name = "windows-targets"
1210- version = "0.48.5"
1211- source = "registry+https://github.com/rust-lang/crates.io-index"
1212- checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
1213- dependencies = [
1214- "windows_aarch64_gnullvm 0.48.5",
1215- "windows_aarch64_msvc 0.48.5",
1216- "windows_i686_gnu 0.48.5",
1217- "windows_i686_msvc 0.48.5",
1218- "windows_x86_64_gnu 0.48.5",
1219- "windows_x86_64_gnullvm 0.48.5",
1220- "windows_x86_64_msvc 0.48.5",
1221+ "windows-targets",
1222 ]
1223
1224 [[package]]
1225 @@ -1696,48 +770,30 @@ version = "0.52.6"
1226 source = "registry+https://github.com/rust-lang/crates.io-index"
1227 checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
1228 dependencies = [
1229- "windows_aarch64_gnullvm 0.52.6",
1230- "windows_aarch64_msvc 0.52.6",
1231- "windows_i686_gnu 0.52.6",
1232+ "windows_aarch64_gnullvm",
1233+ "windows_aarch64_msvc",
1234+ "windows_i686_gnu",
1235 "windows_i686_gnullvm",
1236- "windows_i686_msvc 0.52.6",
1237- "windows_x86_64_gnu 0.52.6",
1238- "windows_x86_64_gnullvm 0.52.6",
1239- "windows_x86_64_msvc 0.52.6",
1240+ "windows_i686_msvc",
1241+ "windows_x86_64_gnu",
1242+ "windows_x86_64_gnullvm",
1243+ "windows_x86_64_msvc",
1244 ]
1245
1246 [[package]]
1247 name = "windows_aarch64_gnullvm"
1248- version = "0.48.5"
1249- source = "registry+https://github.com/rust-lang/crates.io-index"
1250- checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
1251-
1252- [[package]]
1253- name = "windows_aarch64_gnullvm"
1254 version = "0.52.6"
1255 source = "registry+https://github.com/rust-lang/crates.io-index"
1256 checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
1257
1258 [[package]]
1259 name = "windows_aarch64_msvc"
1260- version = "0.48.5"
1261- source = "registry+https://github.com/rust-lang/crates.io-index"
1262- checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
1263-
1264- [[package]]
1265- name = "windows_aarch64_msvc"
1266 version = "0.52.6"
1267 source = "registry+https://github.com/rust-lang/crates.io-index"
1268 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
1269
1270 [[package]]
1271 name = "windows_i686_gnu"
1272- version = "0.48.5"
1273- source = "registry+https://github.com/rust-lang/crates.io-index"
1274- checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
1275-
1276- [[package]]
1277- name = "windows_i686_gnu"
1278 version = "0.52.6"
1279 source = "registry+https://github.com/rust-lang/crates.io-index"
1280 checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
1281 @@ -1750,59 +806,29 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
1282
1283 [[package]]
1284 name = "windows_i686_msvc"
1285- version = "0.48.5"
1286- source = "registry+https://github.com/rust-lang/crates.io-index"
1287- checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
1288-
1289- [[package]]
1290- name = "windows_i686_msvc"
1291 version = "0.52.6"
1292 source = "registry+https://github.com/rust-lang/crates.io-index"
1293 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
1294
1295 [[package]]
1296 name = "windows_x86_64_gnu"
1297- version = "0.48.5"
1298- source = "registry+https://github.com/rust-lang/crates.io-index"
1299- checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
1300-
1301- [[package]]
1302- name = "windows_x86_64_gnu"
1303 version = "0.52.6"
1304 source = "registry+https://github.com/rust-lang/crates.io-index"
1305 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
1306
1307 [[package]]
1308 name = "windows_x86_64_gnullvm"
1309- version = "0.48.5"
1310- source = "registry+https://github.com/rust-lang/crates.io-index"
1311- checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
1312-
1313- [[package]]
1314- name = "windows_x86_64_gnullvm"
1315 version = "0.52.6"
1316 source = "registry+https://github.com/rust-lang/crates.io-index"
1317 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
1318
1319 [[package]]
1320 name = "windows_x86_64_msvc"
1321- version = "0.48.5"
1322- source = "registry+https://github.com/rust-lang/crates.io-index"
1323- checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
1324-
1325- [[package]]
1326- name = "windows_x86_64_msvc"
1327 version = "0.52.6"
1328 source = "registry+https://github.com/rust-lang/crates.io-index"
1329 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
1330
1331 [[package]]
1332- name = "xdg"
1333- version = "2.5.2"
1334- source = "registry+https://github.com/rust-lang/crates.io-index"
1335- checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
1336-
1337- [[package]]
1338 name = "zerocopy"
1339 version = "0.7.35"
1340 source = "registry+https://github.com/rust-lang/crates.io-index"
1341 diff --git a/maitred/Cargo.toml b/maitred/Cargo.toml
1342index 9626221..d39f001 100644
1343--- a/maitred/Cargo.toml
1344+++ b/maitred/Cargo.toml
1345 @@ -5,10 +5,10 @@ edition = "2021"
1346
1347 [dependencies]
1348 bytes = "1.6.1"
1349+ email_address = "0.2.9"
1350 futures = "0.3.30"
1351 mail-parser = { version = "0.9.3", features = ["serde", "serde_support"] }
1352 md5 = "0.7.0"
1353- melib = { version = "0.8.6", default-features = false, features = ["base64", "smtp"] }
1354 smtp-proto = { version = "0.1.5", features = ["serde", "serde_support"] }
1355 thiserror = "1.0.63"
1356 tokio = { version = "1.39.2", features = ["full"] }
1357 diff --git a/maitred/src/addresses.rs b/maitred/src/addresses.rs
1358index 4728649..db8c8a3 100644
1359--- a/maitred/src/addresses.rs
1360+++ b/maitred/src/addresses.rs
1361 @@ -1,10 +1,10 @@
1362 use std::fmt::Display;
1363
1364- use melib::Address;
1365+ use email_address::EmailAddress;
1366
1367 /// Array of resolved e-mail addresses that are associated with a mailing list
1368 #[derive(Debug)]
1369- pub struct Addresses(pub Vec<Address>);
1370+ pub struct Addresses(pub Vec<EmailAddress>);
1371
1372 impl Display for Addresses {
1373 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1374 @@ -12,5 +12,3 @@ impl Display for Addresses {
1375 write!(f, "{}", addresses.join("\n"))
1376 }
1377 }
1378-
1379-
1380 diff --git a/maitred/src/error.rs b/maitred/src/error.rs
1381index afee461..739268d 100644
1382--- a/maitred/src/error.rs
1383+++ b/maitred/src/error.rs
1384 @@ -1,6 +1,5 @@
1385 use std::string::FromUtf8Error;
1386
1387- use melib::error::Error as MelibError;
1388 use smtp_proto::Error as SmtpError;
1389 use url::ParseError;
1390
1391 @@ -12,8 +11,6 @@ pub enum Error {
1392 Io(#[from] std::io::Error),
1393 #[error("Smtp failure: {0}")]
1394 Smtp(#[from] SmtpError),
1395- #[error("Melib error: {0}")]
1396- Melib(#[from] MelibError),
1397 #[error("Failed to parse Url: {0}")]
1398 UrlParsing(#[from] ParseError),
1399 #[error("Failed to read UTF8: {0}")]
1400 diff --git a/maitred/src/expansion.rs b/maitred/src/expansion.rs
1401index 72e1ddc..16d4588 100644
1402--- a/maitred/src/expansion.rs
1403+++ b/maitred/src/expansion.rs
1404 @@ -1,4 +1,4 @@
1405- use std::{fmt::Display, result::Result as StdResult};
1406+ use std::result::Result as StdResult;
1407
1408 use crate::addresses::Addresses;
1409
1410 diff --git a/maitred/src/server.rs b/maitred/src/server.rs
1411index 44e0b85..4d1fb2e 100644
1412--- a/maitred/src/server.rs
1413+++ b/maitred/src/server.rs
1414 @@ -278,9 +278,9 @@ mod test {
1415 let session = server.process(framed).await.unwrap();
1416 assert!(session
1417 .mail_from
1418- .is_some_and(|mail_from| mail_from.get_email() == "fuu@bar.com"));
1419+ .is_some_and(|mail_from| mail_from.email() == "fuu@bar.com"));
1420 assert!(session.rcpt_to.is_some_and(|rcpts| rcpts
1421 .first()
1422- .is_some_and(|rcpt_to| rcpt_to.get_email() == "baz@qux.com")));
1423+ .is_some_and(|rcpt_to| rcpt_to.email() == "baz@qux.com")));
1424 }
1425 }
1426 diff --git a/maitred/src/session.rs b/maitred/src/session.rs
1427index 4ef0078..dcba00d 100644
1428--- a/maitred/src/session.rs
1429+++ b/maitred/src/session.rs
1430 @@ -1,8 +1,9 @@
1431 use std::result::Result as StdResult;
1432+ use std::str::FromStr;
1433
1434 use bytes::Bytes;
1435+ use email_address::EmailAddress;
1436 use mail_parser::MessageParser;
1437- use melib::Address;
1438 use smtp_proto::{EhloResponse, Request, Response as SmtpResponse};
1439 use url::Host;
1440
1441 @@ -42,9 +43,9 @@ pub(crate) struct Session {
1442 /// message body
1443 pub body: Option<Vec<u8>>,
1444 /// mailto address
1445- pub mail_from: Option<Address>,
1446+ pub mail_from: Option<EmailAddress>,
1447 /// rcpt address
1448- pub rcpt_to: Option<Vec<Address>>,
1449+ pub rcpt_to: Option<Vec<EmailAddress>>,
1450 pub hostname: Option<Host>,
1451 /// If an active data transfer is taking place
1452 data_transfer: Option<DataTransfer>,
1453 @@ -183,7 +184,7 @@ impl Session {
1454 }
1455 Request::Mail { from } => {
1456 self.check_initialized()?;
1457- let mail_from = Address::try_from(from.address.as_str()).map_err(|e| {
1458+ let mail_from = EmailAddress::from_str(from.address.as_str()).map_err(|e| {
1459 smtp_response!(
1460 500,
1461 0,
1462 @@ -197,8 +198,8 @@ impl Session {
1463 }
1464 Request::Rcpt { to } => {
1465 self.check_initialized()?;
1466- let rcpt_to = Address::try_from(to.address.as_str()).map_err(|e| {
1467- smtp_response!(500, 0, 0, 0, format!("Cannot parse: {} {}", to.address, e))
1468+ let rcpt_to = EmailAddress::from_str(to.address.as_str()).map_err(|e| {
1469+ smtp_response!(500, 0, 0, 0, format!("cannot parse: {} {}", to.address, e))
1470 })?;
1471 if let Some(ref mut rcpts) = self.rcpt_to {
1472 rcpts.push(rcpt_to.clone());
1473 @@ -255,8 +256,8 @@ impl Session {
1474 }
1475 Request::Vrfy { value } => {
1476 if let Some(verifier) = &self.verification {
1477- let address = Address::try_from(value.as_str()).map_err(|e| {
1478- smtp_response!(500, 0, 0, 0, format!("Cannot parse: {} {}", value, e))
1479+ let address = EmailAddress::from_str(value.as_str()).map_err(|e| {
1480+ smtp_response!(500, 0, 0, 0, format!("cannot parse: {} {}", value, e))
1481 })?;
1482 match verifier.verify(&address) {
1483 Ok(_) => {
1484 @@ -600,10 +601,10 @@ transport rather than the session.
1485 process_all(&mut session, requests);
1486 assert!(session
1487 .mail_from
1488- .is_some_and(|mail_from| mail_from.get_email() == "fuu@example.org"));
1489+ .is_some_and(|mail_from| mail_from.email() == "fuu@example.org"));
1490 assert!(session.rcpt_to.is_some_and(|rcpts| rcpts
1491 .first()
1492- .is_some_and(|rcpt_to| rcpt_to.get_email() == "bar@example.org")));
1493+ .is_some_and(|rcpt_to| rcpt_to.email() == "bar@example.org")));
1494 assert!(session.body.is_some_and(|body| {
1495 let message = MessageParser::new().parse(&body).unwrap();
1496 message
1497 diff --git a/maitred/src/verify.rs b/maitred/src/verify.rs
1498index a1bf270..44224cb 100644
1499--- a/maitred/src/verify.rs
1500+++ b/maitred/src/verify.rs
1501 @@ -1,7 +1,6 @@
1502- use std::{fmt::Display, result::Result as StdResult};
1503+ use std::result::Result as StdResult;
1504
1505- use crate::addresses::Addresses;
1506- use melib::Address;
1507+ use email_address::EmailAddress;
1508
1509 pub type Result = StdResult<(), Error>;
1510
1511 @@ -17,24 +16,24 @@ pub enum Error {
1512 /// Indicates that the input as ambigious and multiple addresses are
1513 /// associated with the string.
1514 #[error("Name is Ambiguous: {0}")]
1515- Ambiguous(Addresses),
1516+ Ambiguous(EmailAddress),
1517 }
1518
1519 pub trait Verify {
1520 /// Verify the e-mail address on the server
1521- fn verify(&self, address: &Address) -> Result;
1522+ fn verify(&self, address: &EmailAddress) -> Result;
1523 }
1524
1525 /// Wrapper type implementing the Verify trait
1526 pub struct Func<F>(pub F)
1527 where
1528- F: Fn(&Address) -> Result;
1529+ F: Fn(&EmailAddress) -> Result;
1530
1531 impl<F> Verify for Func<F>
1532 where
1533- F: Fn(&Address) -> Result,
1534+ F: Fn(&EmailAddress) -> Result,
1535 {
1536- fn verify(&self, address: &Address) -> Result {
1537+ fn verify(&self, address: &EmailAddress) -> Result {
1538 let f = &self.0;
1539 f(address)
1540 }