class MessageFastViewFactory implements MessageViewFactory<MessageFastView> {

    @Override
    public Flux<MessageFastView> fromMessageIds(List<MessageId> messageIds, MailboxSession mailboxSession) {
        ImmutableSet<MessageId> messageIdSet = ImmutableSet.copyOf(messageIds);
        return Mono.from(fastViewProjection.retrieve(messageIds))
            .flatMapMany(fastProjections -> gatherMessageViews(messageIdSet, mailboxSession, fastProjections));
    }

    @Inject @VisibleForTesting public  MessageFastViewFactory(BlobManager blobManager, MessageIdManager messageIdManager, MessageFastViewProjection fastViewProjection,
                                  MessageFullViewFactory messageFullViewFactory);

}