MimeMagicFileException on error.
auto data = "MIME-Magic\0\n[60:text/x-diff]\n" ~ ">0=__NOMAGIC__\n" ~ "0>4=\x00\x02\x55\x40&\xff\xf0~2+8\n" ~ "1>12=\x00\x04\x55\x40\xff\xf0~4+10\n"; void sink(MagicEntry t) { assert(t.mimeType == "text/x-diff"); assert(t.magic.weight == 60); assert(t.magic.matches.length == 1); assert(t.deleteMagic); auto match = t.magic.matches[0]; assert(match.startOffset == 4); assert(match.value.length == 2); assert(match.mask.length == 2); assert(match.type == MagicMatch.Type.host16); assert(match.rangeLength == 8); assert(match.submatches.length == 1); auto submatch = match.submatches[0]; assert(submatch.startOffset == 12); assert(submatch.value.length == 4); assert(!submatch.hasMask()); assert(submatch.type == MagicMatch.Type.host32); assert(submatch.rangeLength == 10); } magicFileReader(data, &sink); void emptySink(MagicEntry t) { } assertThrown!MimeMagicFileException(magicFileReader("MIME-wrong-magic", &emptySink));
Reads magic file contents and push magic entries to sink.