rust_xfinal/http_parser/connection/
mime.rs

1const MINE_MAP: [(&str, &str); 483] = [
2    ("323", "text/h323"),
3    ("3gp", "video/3gpp"),
4    ("aab", "application/x-authoware-bin"),
5    ("aam", "application/x-authoware-map"),
6    ("aas", "application/x-authoware-seg"),
7    ("acx", "application/internet-property-stream"),
8    ("ai", "application/postscript"),
9    ("aif", "audio/x-aiff"),
10    ("aifc", "audio/x-aiff"),
11    ("aiff", "audio/x-aiff"),
12    ("als", "audio/X-Alpha5"),
13    ("amc", "application/x-mpeg"),
14    ("ani", "application/octet-stream"),
15    ("apk", "application/vndandroidpackage-archive"),
16    ("asc", "text/plain"),
17    ("asd", "application/astound"),
18    ("asf", "video/x-ms-asf"),
19    ("asn", "application/astound"),
20    ("asp", "application/x-asap"),
21    ("asr", "video/x-ms-asf"),
22    ("asx", "video/x-ms-asf"),
23    ("au", "audio/basic"),
24    ("avb", "application/octet-stream"),
25    ("avi", "video/x-msvideo"),
26    ("awb", "audio/amr-wb"),
27    ("axs", "application/olescript"),
28    ("bas", "text/plain"),
29    ("bcpio", "application/x-bcpio"),
30    ("bin ", "application/octet-stream"),
31    ("bld", "application/bld"),
32    ("bld2", "application/bld2"),
33    ("bmp", "image/bmp"),
34    ("bpk", "application/octet-stream"),
35    ("bz2", "application/x-bzip2"),
36    ("c", "text/plain"),
37    ("cal", "image/x-cals"),
38    ("cat", "application/vndms-pkiseccat"),
39    ("ccn", "application/x-cnc"),
40    ("cco", "application/x-cocoa"),
41    ("cdf", "application/x-cdf"),
42    ("cer", "application/x-x509-ca-cert"),
43    ("cgi", "magnus-internal/cgi"),
44    ("chat", "application/x-chat"),
45    ("class", "application/octet-stream"),
46    ("clp", "application/x-msclip"),
47    ("cmx", "image/x-cmx"),
48    ("co", "application/x-cult3d-object"),
49    ("cod", "image/cis-cod"),
50    ("conf", "text/plain"),
51    ("cpio", "application/x-cpio"),
52    ("cpp", "text/plain"),
53    ("cpt", "application/mac-compactpro"),
54    ("crd", "application/x-mscardfile"),
55    ("crl", "application/pkix-crl"),
56    ("crt", "application/x-x509-ca-cert"),
57    ("csh", "application/x-csh"),
58    ("csm", "chemical/x-csml"),
59    ("csml", "chemical/x-csml"),
60    ("css", "text/css"),
61    ("cur", "application/octet-stream"),
62    ("dcm", "x-lml/x-evm"),
63    ("dcr", "application/x-director"),
64    ("dcx", "image/x-dcx"),
65    ("der", "application/x-x509-ca-cert"),
66    ("dhtml", "text/html"),
67    ("dir", "application/x-director"),
68    ("dll", "application/x-msdownload"),
69    ("dmg", "application/octet-stream"),
70    ("dms", "application/octet-stream"),
71    ("doc", "application/msword"),
72    (
73        "docx",
74        "application/vndopenxmlformats-officedocumentwordprocessingmldocument",
75    ),
76    ("dot", "application/msword"),
77    ("dvi", "application/x-dvi"),
78    ("dwf", "drawing/x-dwf"),
79    ("dwg", "application/x-autocad"),
80    ("dxf", "application/x-autocad"),
81    ("dxr", "application/x-director"),
82    ("ebk", "application/x-expandedbook"),
83    ("emb", "chemical/x-embl-dl-nucleotide"),
84    ("embl", "chemical/x-embl-dl-nucleotide"),
85    ("eps", "application/postscript"),
86    ("epub", "application/epub+zip"),
87    ("eri", "image/x-eri"),
88    ("es", "audio/echospeech"),
89    ("esl", "audio/echospeech"),
90    ("etc", "application/x-earthtime"),
91    ("etx", "text/x-setext"),
92    ("evm", "x-lml/x-evm"),
93    ("evy", "application/envoy"),
94    ("exe", "application/octet-stream"),
95    ("fh4", "image/x-freehand"),
96    ("fh5", "image/x-freehand"),
97    ("fhc", "image/x-freehand"),
98    ("fif", "application/fractals"),
99    ("flr", "x-world/x-vrml"),
100    ("flv", "flv-application/octet-stream"),
101    ("fm", "application/x-maker"),
102    ("fpx", "image/x-fpx"),
103    ("fvi", "video/isivideo"),
104    ("gau", "chemical/x-gaussian-input"),
105    ("gca", "application/x-gca-compressed"),
106    ("gdb", "x-lml/x-gdb"),
107    ("gif", "image/gif"),
108    ("gps", "application/x-gps"),
109    ("gtar", "application/x-gtar"),
110    ("gz", "application/x-gzip"),
111    ("h", "text/plain"),
112    ("hdf", "application/x-hdf"),
113    ("hdm", "text/x-hdml"),
114    ("hdml", "text/x-hdml"),
115    ("hlp", "application/winhlp"),
116    ("hqx", "application/mac-binhex40"),
117    ("hta", "application/hta"),
118    ("htc", "text/x-component"),
119    ("htm", "text/html"),
120    ("html", "text/html"),
121    ("hts", "text/html"),
122    ("htt", "text/webviewhtml"),
123    ("ice", "x-conference/x-cooltalk"),
124    ("ico", "image/x-icon"),
125    ("ief", "image/ief"),
126    ("ifm", "image/gif"),
127    ("ifs", "image/ifs"),
128    ("iii", "application/x-iphone"),
129    ("imy", "audio/melody"),
130    ("ins", "application/x-internet-signup"),
131    ("ips", "application/x-ipscript"),
132    ("ipx", "application/x-ipix"),
133    ("isp", "application/x-internet-signup"),
134    ("it", "audio/x-mod"),
135    ("itz", "audio/x-mod"),
136    ("ivr", "i-world/i-vrml"),
137    ("j2k", "image/j2k"),
138    ("jad", "text/vndsunj2meapp-descriptor"),
139    ("jam", "application/x-jam"),
140    ("jar", "application/java-archive"),
141    ("java", "text/plain"),
142    ("jfif", "image/pipeg"),
143    ("jnlp", "application/x-java-jnlp-file"),
144    ("jpe", "image/jpeg"),
145    ("jpeg", "image/jpeg"),
146    ("jpg", "image/jpeg"),
147    ("jpz", "image/jpeg"),
148    ("js", "application/x-javascript"),
149    ("jwc", "application/jwc"),
150    ("kjx", "application/x-kjx"),
151    ("lak", "x-lml/x-lak"),
152    ("latex", "application/x-latex"),
153    ("lcc", "application/fastman"),
154    ("lcl", "application/x-digitalloca"),
155    ("lcr", "application/x-digitalloca"),
156    ("lgh", "application/lgh"),
157    ("lha", "application/octet-stream"),
158    ("lml", "x-lml/x-lml"),
159    ("lmlpack", "x-lml/x-lmlpack"),
160    ("log", "text/plain"),
161    ("lsf", "video/x-la-asf"),
162    ("lsx", "video/x-la-asf"),
163    ("lzh", "application/octet-stream"),
164    ("m13", "application/x-msmediaview"),
165    ("m14", "application/x-msmediaview"),
166    ("m15", "audio/x-mod"),
167    ("m3u", "audio/x-mpegurl"),
168    ("m3url", "audio/x-mpegurl"),
169    ("m4a", "audio/mp4a-latm"),
170    ("m4b", "audio/mp4a-latm"),
171    ("m4p", "audio/mp4a-latm"),
172    ("m4u", "video/vndmpegurl"),
173    ("m4v", "video/x-m4v"),
174    ("ma1", "audio/ma1"),
175    ("ma2", "audio/ma2"),
176    ("ma3", "audio/ma3"),
177    ("ma5", "audio/ma5"),
178    ("man", "application/x-troff-man"),
179    ("map", "magnus-internal/imagemap"),
180    ("mbd", "application/mbedlet"),
181    ("mct", "application/x-mascot"),
182    ("mdb", "application/x-msaccess"),
183    ("mdz", "audio/x-mod"),
184    ("me", "application/x-troff-me"),
185    ("mel", "text/x-vmel"),
186    ("mht", "message/rfc822"),
187    ("mhtml", "message/rfc822"),
188    ("mi", "application/x-mif"),
189    ("mid", "audio/mid"),
190    ("midi", "audio/midi"),
191    ("mif", "application/x-mif"),
192    ("mil", "image/x-cals"),
193    ("mio", "audio/x-mio"),
194    ("mmf", "application/x-skt-lbs"),
195    ("mng", "video/x-mng"),
196    ("mny", "application/x-msmoney"),
197    ("moc", "application/x-mocha"),
198    ("mocha", "application/x-mocha"),
199    ("mod", "audio/x-mod"),
200    ("mof", "application/x-yumekara"),
201    ("mol", "chemical/x-mdl-molfile"),
202    ("mop", "chemical/x-mopac-input"),
203    ("mov", "video/quicktime"),
204    ("movie", "video/x-sgi-movie"),
205    ("mp2", "video/mpeg"),
206    ("mp3", "audio/mpeg"),
207    ("mp4", "video/mp4"),
208    ("mpa", "video/mpeg"),
209    ("mpc", "application/vndmpohuncertificate"),
210    ("mpe", "video/mpeg"),
211    ("mpeg", "video/mpeg"),
212    ("mpg", "video/mpeg"),
213    ("mpg4", "video/mp4"),
214    ("mpga", "audio/mpeg"),
215    ("mpn", "application/vndmophunapplication"),
216    ("mpp", "application/vndms-project"),
217    ("mps", "application/x-mapserver"),
218    ("mpv2", "video/mpeg"),
219    ("mrl", "text/x-mrml"),
220    ("mrm", "application/x-mrm"),
221    ("ms", "application/x-troff-ms"),
222    ("msg", "application/vndms-outlook"),
223    ("mts", "application/metastream"),
224    ("mtx", "application/metastream"),
225    ("mtz", "application/metastream"),
226    ("mvb", "application/x-msmediaview"),
227    ("mzv", "application/metastream"),
228    ("nbmp", "image/nbmp"),
229    ("nc", "application/x-netcdf"),
230    ("ndb", "x-lml/x-ndb"),
231    ("ndwn", "application/ndwn"),
232    ("nif", "application/x-nif"),
233    ("nmz", "application/x-scream"),
234    ("nokia-op-logo", "image/vndnok-oplogo-color"),
235    ("npx", "application/x-netfpx"),
236    ("nsnd", "audio/nsnd"),
237    ("nva", "application/x-neva1"),
238    ("nws", "message/rfc822"),
239    ("oda", "application/oda"),
240    ("ogg", "audio/ogg"),
241    ("oom", "application/x-AtlasMate-Plugin"),
242    ("p10", "application/pkcs10"),
243    ("p12", "application/x-pkcs12"),
244    ("p7b", "application/x-pkcs7-certificates"),
245    ("p7c", "application/x-pkcs7-mime"),
246    ("p7m", "application/x-pkcs7-mime"),
247    ("p7r", "application/x-pkcs7-certreqresp"),
248    ("p7s", "application/x-pkcs7-signature"),
249    ("pac", "audio/x-pac"),
250    ("pae", "audio/x-epac"),
251    ("pan", "application/x-pan"),
252    ("pbm", "image/x-portable-bitmap"),
253    ("pcx", "image/x-pcx"),
254    ("pda", "image/x-pda"),
255    ("pdb", "chemical/x-pdb"),
256    ("pdf", "application/pdf"),
257    ("pfr", "application/font-tdpfr"),
258    ("pfx", "application/x-pkcs12"),
259    ("pgm", "image/x-portable-graymap"),
260    ("pict", "image/x-pict"),
261    ("pko", "application/yndms-pkipko"),
262    ("pm", "application/x-perl"),
263    ("pma", "application/x-perfmon"),
264    ("pmc", "application/x-perfmon"),
265    ("pmd", "application/x-pmd"),
266    ("pml", "application/x-perfmon"),
267    ("pmr", "application/x-perfmon"),
268    ("pmw", "application/x-perfmon"),
269    ("png", "image/png"),
270    ("pnm", "image/x-portable-anymap"),
271    ("pnz", "image/png"),
272    ("pot,", "application/vndms-powerpoint"),
273    ("ppm", "image/x-portable-pixmap"),
274    ("pps", "application/vndms-powerpoint"),
275    ("ppt", "application/vndms-powerpoint"),
276    (
277        "pptx",
278        "application/vndopenxmlformats-officedocumentpresentationmlpresentation",
279    ),
280    ("pqf", "application/x-cprplayer"),
281    ("pqi", "application/cprplayer"),
282    ("prc", "application/x-prc"),
283    ("prf", "application/pics-rules"),
284    ("prop", "text/plain"),
285    ("proxy", "application/x-ns-proxy-autoconfig"),
286    ("ps", "application/postscript"),
287    ("ptlk", "application/listenup"),
288    ("pub", "application/x-mspublisher"),
289    ("pvx", "video/x-pv-pvx"),
290    ("qcp", "audio/vndqcelp"),
291    ("qt", "video/quicktime"),
292    ("qti", "image/x-quicktime"),
293    ("qtif", "image/x-quicktime"),
294    ("r3t", "text/vndrn-realtext3d"),
295    ("ra", "audio/x-pn-realaudio"),
296    ("ram", "audio/x-pn-realaudio"),
297    ("rar", "application/octet-stream"),
298    ("ras", "image/x-cmu-raster"),
299    ("rc", "text/plain"),
300    ("rdf", "application/rdf+xml"),
301    ("rf", "image/vndrn-realflash"),
302    ("rgb", "image/x-rgb"),
303    ("rlf", "application/x-richlink"),
304    ("rm", "audio/x-pn-realaudio"),
305    ("rmf", "audio/x-rmf"),
306    ("rmi", "audio/mid"),
307    ("rmm", "audio/x-pn-realaudio"),
308    ("rmvb", "audio/x-pn-realaudio"),
309    ("rnx", "application/vndrn-realplayer"),
310    ("roff", "application/x-troff"),
311    ("rp", "image/vndrn-realpix"),
312    ("rpm", "audio/x-pn-realaudio-plugin"),
313    ("rt", "text/vndrn-realtext"),
314    ("rte", "x-lml/x-gps"),
315    ("rtf", "application/rtf"),
316    ("rtg", "application/metastream"),
317    ("rtx", "text/richtext"),
318    ("rv", "video/vndrn-realvideo"),
319    ("rwc", "application/x-rogerwilco"),
320    ("s3m", "audio/x-mod"),
321    ("s3z", "audio/x-mod"),
322    ("sca", "application/x-supercard"),
323    ("scd", "application/x-msschedule"),
324    ("sct", "text/scriptlet"),
325    ("sdf", "application/e-score"),
326    ("sea", "application/x-stuffit"),
327    ("setpay", "application/set-payment-initiation"),
328    ("setreg", "application/set-registration-initiation"),
329    ("sgm", "text/x-sgml"),
330    ("sgml", "text/x-sgml"),
331    ("sh", "application/x-sh"),
332    ("shar", "application/x-shar"),
333    ("shtml", "magnus-internal/parsed-html"),
334    ("shw", "application/presentations"),
335    ("si6", "image/si6"),
336    ("si7", "image/vndstiwapsis"),
337    ("si9", "image/vndlgtwapsis"),
338    ("sis", "application/vndsymbianinstall"),
339    ("sit", "application/x-stuffit"),
340    ("skd", "application/x-Koan"),
341    ("skm", "application/x-Koan"),
342    ("skp", "application/x-Koan"),
343    ("skt", "application/x-Koan"),
344    ("slc", "application/x-salsa"),
345    ("smd", "audio/x-smd"),
346    ("smi", "application/smil"),
347    ("smil", "application/smil"),
348    ("smp", "application/studiom"),
349    ("smz", "audio/x-smd"),
350    ("snd", "audio/basic"),
351    ("spc", "application/x-pkcs7-certificates"),
352    ("spl", "application/futuresplash"),
353    ("spr", "application/x-sprite"),
354    ("sprite", "application/x-sprite"),
355    ("sdp", "application/sdp"),
356    ("spt", "application/x-spt"),
357    ("src", "application/x-wais-source"),
358    ("sst", "application/vndms-pkicertstore"),
359    ("stk", "application/hyperstudio"),
360    ("stl", "application/vndms-pkistl"),
361    ("stm", "text/html"),
362    ("svg", "image/svg+xml"),
363    ("sv4cpio", "application/x-sv4cpio"),
364    ("sv4crc", "application/x-sv4crc"),
365    ("svf", "image/vnd"),
366    ("eot", "application/vndms-fontobject"),
367    ("woff", "application/font-woff"),
368    ("svh", "image/svh"),
369    ("svr", "x-world/x-svr"),
370    ("swf", "application/x-shockwave-flash"),
371    ("swfl", "application/x-shockwave-flash"),
372    ("t", "application/x-troff"),
373    ("tad", "application/octet-stream"),
374    ("talk", "text/x-speech"),
375    ("tar", "application/x-tar"),
376    ("taz", "application/x-tar"),
377    ("tbp", "application/x-timbuktu"),
378    ("tbt", "application/x-timbuktu"),
379    ("tcl", "application/x-tcl"),
380    ("tex", "application/x-tex"),
381    ("texi", "application/x-texinfo"),
382    ("texinfo", "application/x-texinfo"),
383    ("tgz", "application/x-compressed"),
384    ("thm", "application/vnderithm"),
385    ("tif", "image/tiff"),
386    ("tiff", "image/tiff"),
387    ("tki", "application/x-tkined"),
388    ("tkined", "application/x-tkined"),
389    ("toc", "application/toc"),
390    ("toy", "image/toy"),
391    ("tr", "application/x-troff"),
392    ("trk", "x-lml/x-gps"),
393    ("trm", "application/x-msterminal"),
394    ("tsi", "audio/tsplayer"),
395    ("tsp", "application/dsptype"),
396    ("tsv", "text/tab-separated-values"),
397    ("ttf", "application/octet-stream"),
398    ("ttz", "application/t-time"),
399    ("txt", "text/plain"),
400    ("uls", "text/iuls"),
401    ("ult", "audio/x-mod"),
402    ("ustar", "application/x-ustar"),
403    ("uu", "application/x-uuencode"),
404    ("uue", "application/x-uuencode"),
405    ("vcd", "application/x-cdlink"),
406    ("vcf", "text/x-vcard"),
407    ("vdo", "video/vdo"),
408    ("vib", "audio/vib"),
409    ("viv", "video/vivo"),
410    ("vivo", "video/vivo"),
411    ("vmd", "application/vocaltec-media-desc"),
412    ("vmf", "application/vocaltec-media-file"),
413    ("vmi", "application/x-dreamcast-vms-info"),
414    ("vms", "application/x-dreamcast-vms"),
415    ("vox", "audio/voxware"),
416    ("vqe", "audio/x-twinvq-plugin"),
417    ("vqf", "audio/x-twinvq"),
418    ("vql", "audio/x-twinvq"),
419    ("vre", "x-world/x-vream"),
420    ("vrml", "x-world/x-vrml"),
421    ("vrt", "x-world/x-vrt"),
422    ("vrw", "x-world/x-vream"),
423    ("vts", "workbook/formulaone"),
424    ("wav", "audio/x-wav"),
425    ("wax", "audio/x-ms-wax"),
426    ("wbmp", "image/vndwapwbmp"),
427    ("wcm", "application/vndms-works"),
428    ("wdb", "application/vndms-works"),
429    ("web", "application/vndxara"),
430    ("wi", "image/wavelet"),
431    ("wis", "application/x-InstallShield"),
432    ("wks", "application/vndms-works"),
433    ("wm", "video/x-ms-wm"),
434    ("wma", "audio/x-ms-wma"),
435    ("wmd", "application/x-ms-wmd"),
436    ("wmf", "application/x-msmetafile"),
437    ("wml", "text/vndwapwml"),
438    ("wmlc", "application/vndwapwmlc"),
439    ("wmls", "text/vndwapwmlscript"),
440    ("wmlsc", "application/vndwapwmlscriptc"),
441    ("wmlscript", "text/vndwapwmlscript"),
442    ("wmv", "audio/x-ms-wmv"),
443    ("wmx", "video/x-ms-wmx"),
444    ("wmz", "application/x-ms-wmz"),
445    ("wpng", "image/x-up-wpng"),
446    ("wps", "application/vndms-works"),
447    ("wpt", "x-lml/x-gps"),
448    ("wri", "application/x-mswrite"),
449    ("wrl", "x-world/x-vrml"),
450    ("wrz", "x-world/x-vrml"),
451    ("ws", "text/vndwapwmlscript"),
452    ("wsc", "application/vndwapwmlscriptc"),
453    ("wv", "video/wavelet"),
454    ("wvx", "video/x-ms-wvx"),
455    ("wxl", "application/x-wxl"),
456    ("x-gzip", "application/x-gzip"),
457    ("xaf", "x-world/x-vrml"),
458    ("xar", "application/vndxara"),
459    ("xbm", "image/x-xbitmap"),
460    ("xdm", "application/x-xdma"),
461    ("xdma", "application/x-xdma"),
462    ("xdw", "application/vndfujixeroxdocuworks"),
463    ("xht", "application/xhtml+xml"),
464    ("xhtm", "application/xhtml+xml"),
465    ("xhtml", "application/xhtml+xml"),
466    ("xla", "application/vndms-excel"),
467    ("xlc", "application/vndms-excel"),
468    ("xll", "application/x-excel"),
469    ("xlm", "application/vndms-excel"),
470    ("xls", "application/vndms-excel"),
471    (
472        "xlsx",
473        "application/vndopenxmlformats-officedocumentspreadsheetmlsheet",
474    ),
475    ("xlt", "application/vndms-excel"),
476    ("xlw", "application/vndms-excel"),
477    ("xm", "audio/x-mod"),
478    ("xml", "text/plain"),
479    ("xml", "application/xml"),
480    ("xmz", "audio/x-mod"),
481    ("xof", "x-world/x-vrml"),
482    ("xpi", "application/x-xpinstall"),
483    ("xpm", "image/x-xpixmap"),
484    ("xsit", "text/xml"),
485    ("xsl", "text/xml"),
486    ("xul", "text/xul"),
487    ("xwd", "image/x-xwindowdump"),
488    ("xyz", "chemical/x-pdb"),
489    ("yz1", "application/x-yz1"),
490    ("z", "application/x-compress"),
491    ("zac", "application/x-zaurus-zac"),
492    ("zip", "application/zip"),
493    ("json", "application/json"),
494];
495
496pub fn extension_to_content_type(s: &str) -> &'static str {
497    let v = s.to_lowercase();
498    let r = MINE_MAP.binary_search_by_key(&v.as_str(), |&(k, _)| k);
499    match r {
500        Ok(x) => MINE_MAP[x].1,
501        Err(_) => "",
502    }
503}