about summary refs log tree commit homepage
path: root/lib/PublicInbox/MIME.pm
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-05-07 21:05:44 +0000
committerEric Wong <e@yhbt.net>2020-05-09 08:59:10 +0000
commit8d1b87f498ea47bb752ea24900372df192d322fb (patch)
tree3d14a85ee2e353544e5d2a7cd59c0e071065bf76 /lib/PublicInbox/MIME.pm
parentdc7dc9ef49e3d396d2b47fa2befd1718aff45f0d (diff)
downloadpublic-inbox-8d1b87f498ea47bb752ea24900372df192d322fb.tar.gz
msg_iter: make ->each_part method for PublicInbox::MIME
The reliance on Email::MIME->subparts is a tad inefficient with
a work-in-progress module to replace Email::MIME.  So move
towards using ->each_part as a class-specific iterator which can
take advantage of more class-specific optimizations in the
yet-to-be-revealed PublicInbox::Eml and PublicInbox::Gmime
classes.

The msg_iter() sub remains for compatibility with existing
3rd-party scripts/modules which use our small public Perl API
and Email::MIME.
Diffstat (limited to 'lib/PublicInbox/MIME.pm')
-rw-r--r--lib/PublicInbox/MIME.pm3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/PublicInbox/MIME.pm b/lib/PublicInbox/MIME.pm
index 456eed64..b795b93b 100644
--- a/lib/PublicInbox/MIME.pm
+++ b/lib/PublicInbox/MIME.pm
@@ -24,6 +24,7 @@ use strict;
 use warnings;
 use base qw(Email::MIME);
 use Email::MIME::ContentType;
+use PublicInbox::MsgIter ();
 $Email::MIME::ContentType::STRICT_PARAMS = 0;
 
 if ($Email::MIME::VERSION <= 1.937) {
@@ -101,4 +102,6 @@ sub parts_multipart {
 }
 }
 
+no warnings 'once';
+*each_part = \&PublicInbox::MsgIter::em_each_part;
 1;